当前位置: 首页 > 知识库问答 >
问题:

回收站无法正确显示列表

叶光华
2023-03-14

我试图创建简单的Recyclerview与视图绑定。

问题是我的回收器视图没有分隔线。似乎我所有的物品都是

排成一排。

以下是我的代码:

这里是activity_main。xml:

<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"

>

    <com.google.android.material.appbar.MaterialToolbar
        android:id="@+id/tool"
        android:background="@color/c4"
        android:layout_width="0dp"
        app:title="Kotlin-Recyclerview"
        app:titleTextColor="@color/white"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.0" />


    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/recycler_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
       android:layout_marginTop="55dp"
        android:padding="4dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/tool" />



</androidx.constraintlayout.widget.ConstraintLayout>

这里是recyclerview_rows。xml:


<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <TextView
            android:id="@+id/text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="30sp"
            android:textColor="@color/black"
            android:text="Name"
            android:textStyle="bold"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.09"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintVertical_bias="0.04000002" />


    </androidx.constraintlayout.widget.ConstraintLayout>


</androidx.cardview.widget.CardView>


房车。Model.kt:

data class RV_Model(val name:String)

RV_Adapter.kt:

class RV_Adapter(private val mylist:List<RV_Model>) :RecyclerView.Adapter<RV_Adapter.MyViewholder>() {

    lateinit var adapter_binding:RecyclerviewRowsBinding

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewholder {

         adapter_binding = RecyclerviewRowsBinding.inflate(LayoutInflater.from(parent.context),parent,false);

        return MyViewholder(adapter_binding)

    }

    override fun onBindViewHolder(holder: MyViewholder, position: Int) {
        val current_item = mylist[position]
        adapter_binding.text.text= current_item.name

    }

  class MyViewholder(val adapter_binding:RecyclerviewRowsBinding) :RecyclerView.ViewHolder(adapter_binding.root) {

    }
    override fun getItemCount(): Int {
        return mylist.size
    }


}

MainActivity.kt:


class MainActivity : AppCompatActivity() {

   lateinit var binding:ActivityMainBinding
   var mylist= ArrayList<RV_Model>()

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
         binding = ActivityMainBinding.inflate(layoutInflater)
        setContentView(binding.root)


        set_data()

        binding.recyclerView.layoutManager= LinearLayoutManager(this)
        binding.recyclerView.adapter=RV_Adapter(mylist)
        binding.recyclerView.setHasFixedSize(true)







        }


    fun set_data() {

       mylist.add(RV_Model("A"))
       mylist.add(RV_Model("B"))
       mylist.add(RV_Model("C"))
        mylist.add(RV_Model("D"))

    }


 }

有什么问题?

[这里是图像:1

共有3个答案

经博延
2023-03-14

你好兄弟试试这个代码工作正常!

这里是recyclerview_rows。xml:

<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:elevation="15dp"
    android:layout_margin="10dp">

    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="10dp">

        <TextView 
            android:id="@+id/text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Name"
            android:textColor="@color/black"
            android:textSize="30sp"
            android:textStyle="bold"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.09"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintVertical_bias="0.04000002" />


    </androidx.constraintlayout.widget.ConstraintLayout>


</androidx.cardview.widget.CardView>
衡建中
2023-03-14

有许多方法可以在项目之间创建分隔线。

  1. 您可以简单地在文本视图下方放置一个高度为1dp的视图(您可以根据需要进行更改)。
  2. 您可以使用标准分频器。

在你的文本视图下面放一个视图:-

<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content">

<androidx.constraintlayout.widget.ConstraintLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="30sp"
        android:textColor="@color/black"
        android:text="Name"
        android:textStyle="bold"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.09"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.04000002" />

    <View
        android:layout_width="match_parent"
        android:layout_height="@dimen/d1"
        app:layout_constraintTop_toBottomOf="@id/text"
        android:background="#000000"/>

</androidx.constraintlayout.widget.ConstraintLayout>

</androidx.cardview.widget.CardView>

标准方式:

    val mDividerItemDecoration = new DividerItemDecoration(recyclerView.getContext(),
         mLayoutManager.getOrientation());
 recyclerView.addItemDecoration(mDividerItemDecoration);
景凌
2023-03-14

有很多方法可以在列表中的项目之间创建分隔或放置的内容(例如,在项目布局的底部添加可视元素,或者在数据项之间添加可视项目),但最简单的方法是使用标准分隔线< code>ItemDecoration:

val divider = DividerItemDecoration(requireContext(), layoutManager.orientation)
recyclerView.addItemDecoration(divider)

默认情况下没有一个(正如您注意到的!

 类似资料:
  • 问题内容: 我想要一个JFrame,在左右两侧有一个边框,边框为黑色,宽度为withfOfJFrame / 10。 现在,我的尝试如下所示: 这会在左右两侧添加一个黑色边框,但是该边框具有固定的大小,并且在调整窗口大小时不会重新计算。大小甚至不是800(JFrame的开始宽度)的1/10。 我究竟做错了什么?还是有更好的方法来做到这一点? 问题答案: 您可以使用和适当的权重来获得所需的结果:

  • 问题内容: 我正在从Bootstrap 2.3迁移到Bootstrap3,一切正常。但是,当我尝试添加一些图标时,图标字体无法正确显示。我尝试,仅正确显示了“.glyphicon-envelope”。其他显示如“ E001”等。 我该如何解决这个问题? 对于其他浏览器,字形显示正确,只有Firefox无法正确显示。 问题答案: 好的,以上问题未能解决我的问题。我的字体文件夹与Bootstrap c

  • 问题内容: 我是Android的新秀,因此决定将Cloud Firestore用作我的数据库,并使用它来填充MainActivity中的列表。我以为用于Firestore会超级简单,但我不知道为什么RecyclerView中什么也没有。作为参考,这是Firebase UI页面 ,这是我基于我的应用程序创建的示例代码。我想要做的就是填充用户已保存在数据库中的“课程”列表(Course.java如下所

  • 当我按下后退按钮时,这个ShoppingActivity会被破坏,当我再次访问该activity时,我发现我的回收器视图项目被替换了两次。我该如何解决这个问题? ShoppingActivity.java这里编写的所有代码和volley类也在这里调用,当我按下后退键并再次访问该活动时,我发现我的回收器视图项被替换了 @override protected void onCreate(Bundle

  • 我的插入方法解释:我分配了尾巴的“下一个变量”来保存旧节点的地址。我分配了尾部,并将新节点插入列表。 我试着从尾部开始显示列表,然后遍历列表,直到列表到达头部。 问题:但是输入显示C,这不是我想要的。显示方法应显示C、B、A。 我甚至在纸上调试我的代码。我不知道为什么显示器没有检索链接列表中链接的节点的最后地址。它仅检索列表中的最后一个节点,并仅显示列表中的最后一个节点。

  • 问题内容: 在两台计算机的HTML文件中显示数据库的结果时出现问题。 因此,在一台计算机上它显示的名称是这样的: 数据库的排序规则为,表的排序规则为。 在另一台计算机上,它显示如下(我希望这样): 名称在标签中列出。两种浏览器的语言是英语,并且Html文件在两种环境下都相同,所以我认为这与php.ini文件的字符集或编码有关 我曾尝试更改中的值,但没有任何变化,我在任何地方都找不到答案。 唯一的区