Kotlin笔记(47) — RecyclerView的使用(L

2021-02-02  本文已影响0人  奔跑的佩恩

前言

RecyclerView作为新版本的列表展示控件,功能十分强大。也是它的出现,使ListViewGridView控件变得暗淡无光。那么今天就让我们来学习这款强大的控件吧。

今天涉及知识:

  1. RecyclerView依赖
  2. RecyclerView有关方法与属性调用对比
  3. RecyclerView的管理器
  4. LinearLayoutManager调用示例
  5. 效果图和项目结构图
  6. 适配器TestAdapter源码

先来波效果图


LinearLayoutManager.gif

一. RecyclerView依赖

我使用的是Androidx下的包,所以在使用RecyclerView之前,我们需要在app_module对应的build.gradle中添加以下依赖:

dependencies {
    //RecyclerView引用 
    implementation 'androidx.recyclerview:recyclerview:1.2.0-alpha04'
    //其他代码省略
    //......
}

RecyclerView引用的最新版本,可以查看Android中文网

二.RecyclerView有关方法与属性调用对比

由于kotlinJava的不同,下面列出部分调用上的差异:

方法/属性说明 Kotlin调用 Java调用
设置列表项的布局管理器 layoutManager setLayoutManager
设置列表项的适配器 adapter setAdapter
设置列表项的增删动画 itemAnimator setItemAnimator
添加列表项的分隔线 addItemDecoration addItemDecoration

三.RecyclerView的管理器

RecyclerView的管理器分三种:

四.LinearLayoutManager调用示例

下面给出LinearLayoutManagerMainActivity中使用代码:

open class MainActivity : AppCompatActivity(), View.OnClickListener {

    private var nameList:MutableList<String> = mutableListOf("幼稚园","小学","初中","高中","大学")

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(com.kotlintest.R.layout.activity_main)

        initData()
        setListener()
    }

    private fun initData() {
        mRecyclerView.layoutManager = LinearLayoutManager(this)
        var testAdapter:TestAdapter<String> = TestAdapter(this,nameList)
        mRecyclerView.adapter=testAdapter
        mRecyclerView.itemAnimator = DefaultItemAnimator() //设置动画
        //点击事件
        testAdapter.setOnItemClick(object : TestAdapter.OnItemClick {
            override fun click(position: Int) {
                testAdapter.setIndex(position)
                testAdapter.notifyDataSetChanged()

                toast("====点击了 ${nameList.get(position)}=")
            }
        })
    }

    private fun setListener() {
        mBtnTest.setOnClickListener(this@MainActivity)

    }

    override fun onClick(v: View) {
       when(v.id){
           com.kotlintest.R.id.mBtnTest -> {

           }
       }
    }
}

五. 效果图和项目结构图

效果图如下


LinearLayoutManager.gif 项目结构图.png

六. 适配器TestAdapter源码

MainActivity涉及适配器TestAdapter代码如下:

上一篇 下一篇

猜你喜欢

热点阅读