美文网首页
Kotlin笔记(48) — RecyclerView的使用(G

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

作者: 奔跑的佩恩 | 来源:发表于2021-02-03 09:49 被阅读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源码:

    相关文章

      网友评论

          本文标题:Kotlin笔记(48) — RecyclerView的使用(G

          本文链接:https://www.haomeiwen.com/subject/jutgzktx.html