美文网首页
Kotlin笔记(47) — RecyclerView的使用(L

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

作者: 奔跑的佩恩 | 来源:发表于2021-02-02 11:03 被阅读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: 线性布局管理器,可以设置传值方向和水平方向
    • GridLayoutManager: 网格布局管理器,可设置类似GridView实现的“九宫格”布局效果
    • StaggeredGridLayoutManager: 瀑布流昂哥布局管理器

    四.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代码如下:

    相关文章

      网友评论

          本文标题:Kotlin笔记(47) — RecyclerView的使用(L

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