前言
RecyclerView
作为新版本的列表展示控件,功能十分强大。也是它的出现,使ListView
和GridView
控件变得暗淡无光。那么今天就让我们来学习这款强大的控件吧。
今天涉及知识:
- RecyclerView依赖
- RecyclerView有关方法与属性调用对比
- RecyclerView的管理器
- LinearLayoutManager调用示例
- 效果图和项目结构图
- 适配器TestAdapter源码
先来波效果图
LinearLayoutManager.gif
一. RecyclerView依赖
我使用的是Androidx
下的包,所以在使用RecyclerView
之前,我们需要在app_module
对应的build.gradle
中添加以下依赖:
dependencies {
//RecyclerView引用
implementation 'androidx.recyclerview:recyclerview:1.2.0-alpha04'
//其他代码省略
//......
}
RecyclerView
引用的最新版本,可以查看Android中文网
二.RecyclerView有关方法与属性调用对比
由于kotlin
与Java
的不同,下面列出部分调用上的差异:
方法/属性说明 | Kotlin调用 | Java调用 |
---|---|---|
设置列表项的布局管理器 | layoutManager | setLayoutManager |
设置列表项的适配器 | adapter | setAdapter |
设置列表项的增删动画 | itemAnimator | setItemAnimator |
添加列表项的分隔线 | addItemDecoration | addItemDecoration |
三.RecyclerView的管理器
RecyclerView
的管理器分三种:
- LinearLayoutManager: 线性布局管理器,可以设置传值方向和水平方向
- GridLayoutManager: 网格布局管理器,可设置类似GridView实现的“九宫格”布局效果
- StaggeredGridLayoutManager: 瀑布流昂哥布局管理器
四.LinearLayoutManager调用示例
下面给出LinearLayoutManager
在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() {
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
代码如下:
网友评论