宝塔批量建站工具,云服务器 虚拟机,大连市城市建设管理局网站,人社局网站建设前言
基于3.0.4版本的BRVAH框架实现的
实现方法
1.创建多个不同类型的布局#xff08;步骤忽略#xff09;
2.创建数据实体类
数据类要实现【MultiItemEntity】接口
class MyMultiItemEntity(//获取布局类型override var itemType: Int,var tractorRes: Int? null,va…前言
基于3.0.4版本的BRVAH框架实现的
实现方法
1.创建多个不同类型的布局步骤忽略
2.创建数据实体类
数据类要实现【MultiItemEntity】接口
class MyMultiItemEntity(//获取布局类型override var itemType: Int,var tractorRes: Int? null,var tractorTitle: String? null,// 4-set 第一种布局需要的数据var fourSetFirstName: String? null,var fourSetSecondName: String? null,var fourSetThreeName: String? null,var fourSetFourName: String? null,// 5-set 第二种布局需要的数据var fiveSetFirstName: String? null,var fiveSetSecondName: String? null,var fiveSetThreeName: String? null,var fiveSetFourName: String? null,var fiveSetFiveName: String? null,// 6-set 第三种布局需要的数据var sixSetFirstName: String? null,var sixSetSecondName: String? null,var sixSetThreeName: String? null,var sixSetFourName: String? null,var sixSetFiveName: String? null,var sixSetSixName: String? null
) : MultiItemEntity {//设置三个字段因为有三种布局companion object {const val TRACTOR_ITEM_FOUR 0const val TRACTOR_ITEM_FIVE 1const val TRACTOR_ITEM_SIX 2}//使用此构造方法构建第一种布局的数据源constructor(itemType: Int,res: Int,title: String,first: String,second: String,three: String,four: String) : this(itemType) {this.tractorRes resthis.tractorTitle titlethis.fourSetFirstName firstthis.fourSetSecondName secondthis.fourSetThreeName threethis.fourSetFourName four}
//使用此构造方法构建第二种布局的数据源constructor(itemType: Int,res: Int,title: String,first: String,second: String,three: String,four: String,five: String) : this(itemType) {this.tractorRes resthis.tractorTitle titlethis.fiveSetFirstName firstthis.fiveSetSecondName secondthis.fiveSetThreeName threethis.fiveSetFourName fourthis.fiveSetFiveName five}
//使用此构造方法构建第三种布局的数据源constructor(itemType: Int,res: Int,title: String,first: String,second: String,three: String,four: String,five: String,six: String) : this(itemType) {this.tractorRes resthis.tractorTitle titlethis.sixSetFirstName firstthis.sixSetSecondName secondthis.sixSetThreeName threethis.sixSetFourName fourthis.sixSetFiveName fivethis.sixSetSixName six}
}3.创建Adapter
需要继承自【BaseMultiItemQuickAdapter】
class SteerAdapter(val list: MutableListMyMultiItemEntity,
) :BaseMultiItemQuickAdapterMyMultiItemEntity, BaseViewHolder(list) {init {addItemType(MyMultiItemEntity.TRACTOR_ITEM_FOUR,R.layout.item_tractor_second_four_sets)addItemType(MyMultiItemEntity.TRACTOR_ITEM_FIVE,R.layout.item_tractor_second_five_sets)addItemType(MyMultiItemEntity.TRACTOR_ITEM_SIX,R.layout.item_tractor_second_six_sets)}override fun convert(holder: BaseViewHolder, item: MyMultiItemEntity) {when (holder.itemViewType) {MyMultiItemEntity.TRACTOR_ITEM_FOUR - {}MyMultiItemEntity.TRACTOR_ITEM_FIVE - {} MyMultiItemEntity.TRACTOR_ITEM_SIX - {}
}使用
// binding.rvList.layoutManager LinearLayoutManager(context)
// val myAdapter SteerAdapter(list)
// val dp10 requireContext().resources.getDimensionPixelSize(R.dimen.dp_10)
// val itemDecoration object : RecyclerView.ItemDecoration() {
// override fun getItemOffsets(
// outRect: Rect,
// view: View,
// parent: RecyclerView,
// state: RecyclerView.State
// ) {
// outRect.bottom dp10
// }
// }
// binding.rvList.addItemDecoration(itemDecoration)
// binding.rvList.adapter myAdapter基本上主要代码就这么多基本上对着官方代码来就可以了但是有一点就是官方代码对于数据类的构建讲的比较粗略这篇笔记也是对这个进行补充吧。