Kotlin笔记(48) — RecyclerView的使用(G

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

前言

上节我们已经讲到了RecyclerView的线性布局管理器LinearLayoutManager的使用,这节让我们来了解下它的网格布局管理器GridLayoutManager的使用吧

今天涉及知识点有:

  1. RecyclerView依赖
  2. RecyclerView网格布局的使用
  3. 效果图和项目结构图
  4. 适配器TestAdapter源码
  5. 需要注意的问题

先来波效果图


效果图.gif

一.RecyclerView依赖

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

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

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

二.RecyclerView网格布局的使用

下面贴出RecyclerView网格布局管理器在MainActivity中使用代码:

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() {
        TestAdapter.getMeasure(mRecyclerView,object:TestAdapter.OnMeasureListener{
            override fun measure(width: Int, height: Int) {
                initRecyclerData(width)
            }
        })
    }

    private fun initRecyclerData(width:Int){
        var count:Int=4
        mRecyclerView.layoutManager = GridLayoutManager(this,count)
        var testAdapter:TestAdapter<String> = TestAdapter(this,nameList,width/count)
        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 -> {

           }
       }
    }

}

三.效果图和项目结构图

效果图.gif 项目结构图.png

四. 适配器TestAdapter源码

下面贴出适配器TestAdapter源码:

上一篇下一篇

猜你喜欢

热点阅读