Kotlin 简单的RecyclerView

Posted 彬sir哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kotlin 简单的RecyclerView相关的知识,希望对你有一定的参考价值。

kotlin实现RecyclerView效果如下:
在这里插入图片描述
activity_list.xml

......
    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/mRecyclerView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/bgColorSecondary"
        app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
......

1.kotlin比java强大简单能减少代码

1.1 MyListActivity.kt

......
    private lateinit var mAdapter: MyListAdapter
    override fun layoutRes(): Int = R.layout.activity_list
......
    override fun initData(){
        var mList = arrayListOf<MutableMap<String,String>>()

        var names = arrayOf("xxx_1", "xxx_2", "xxx_3","xxx_4","xxx_5",
            "xxx_6","xxx_7","xxx_8","xxx_9","xxx_10","xxx_11","xxx_12",
            "xxx_13", "xxx_14", "xxx_15")

        for(name in names){
            var map = mutableMapOf<String,String>()
            map["Name1"] = name
            map["Name2"] = name
            map["Name3"] = name
            mList.add(map)
        }

        mAdapter = MyListAdapter()
        mAdapter.setList(mList)
    }

    private fun setAdapter(){
        mRecyclerView.adapter = mAdapter;
    }
......

1.2 MyListAdapter.kt

class MyListAdapter(layoutResId: Int = R.layout.item_list) :
    BaseQuickAdapter<MutableMap<String,String>,BaseViewHolder>(layoutResId),LoadMoreModule{
    override fun convert(holder: BaseViewHolder, item: MutableMap<String, String>) {
        holder.itemView.run {
            tv_value1.text = item["Name1"]
            tv_value2.text = item["Name2"]
            tv_value3.text = item["Name3"]
        }
    }
}

item_list.xml

<TextView
        android:id="@+id/tv_value1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="10dp"
        android:layout_marginTop="6dp"
        android:layout_marginEnd="16dp"
        android:textColor="#1B1B1D"
        android:textSize="16sp"
        app:layout_constraintStart_toStartOf="parent"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="16dp"
        tools:ignore="MissingConstraints" />

    <TextView
        android:id="@+id/tv_value2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="10dp"
        android:layout_marginTop="6dp"
        android:layout_marginEnd="16dp"
        android:textColor="#1B1B1D"
        android:textSize="16sp"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/tv_value1"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="16dp"/>

    <TextView
        android:id="@+id/tv_value3"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="10dp"
        android:layout_marginTop="6dp"
        android:layout_marginEnd="16dp"
        android:textColor="#1B1B1D"
        android:textSize="16sp"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/tv_value2"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="16dp" />

源代码zip下载
  下载源代码

以上是关于Kotlin 简单的RecyclerView的主要内容,如果未能解决你的问题,请参考以下文章

在recyclerview kotlin中插入firebase快照

通过kotlin ..通过firebase从数据库读取数据到RecyclerView的麻烦

当 Kotlin 中的数据发生变化时,如何在 RecyclerView 中重新绑定项目?

kotlin:如何在两个片段之间传递数据

DataBinding:如何使用 Kotlin 中的泛型创建具有多个 ViewHolder(多个布局)的 Recyclerview

Kotlin - Recyclerview 分页中的问题