前言
RecyclerView出来很久了,可以说一出来就将ListView给比下去了,当然,Recyclerview有它的好,ListView的好,并不是说一定要用Recyclerview,最适用自己项目的才是最好的。
在这里我们将用Kotlin来实现RecyclerView的多种item布局,和单个item布局,同时写一个通用的Adapter。
使用
先将写完的代码的使用方式展示一下:
一种item布局
class SingleItemAdapter(mContext: Context, mDatas: List<TestBean>)
: DelegateItemAdapter<TestBean>(mContext, mDatas) {
init {
addItemViewDelegate(SingleItemDelegate())
}
}
效果图
多种item布局
class MultiItemAdapter(mContext: Context, mDatas: List<TestBean>)
: DelegateItemAdapter<TestBean>(mContext, mDatas) {
init {
addItemViewDelegate(LeftDelegate())
addItemViewDelegate(CenterDelegate())
addItemViewDelegate(RightDelegate())
}
}
效果图
梳理
总体流程是这样的,首先创建itemView,在里面设置layoutId和数据处理,然后创建一个类继承DelegateItemAdapter
,并在主构造方法里面添加不同的itemView,然后Adapter通过DelegateManager
类来管理对应的itemView进行操作。
ItemView
我们的itemView是实现DelegateTy