## 描述 是否可以封装成把 数据abstract class HiDataItem<DATA, VH : RecyclerView.ViewHolder>(data: DATA? = null) ## 理由 这样的话,封装成这样调用 private fun updateUI(data: HomeModel) { val dataItems = mutableListOf<HiDataItem<*, *>>() data.bannerList?.let { dataItems.add(BannerItem(it)) } data.subcategoryList?.let { dataItems.add(GridItem(it)) } data.goodsList?.forEachIndexed { index, goodsModel -> dataItems.add( GoodsItem( goodsModel, TextUtils.equals(categoryId, DEFAULT_HOT_TAB_CATEGORY_ID) ) ) } finishRefresh(dataItems) } 是否可扩展性就更高了 ## 参考实现 ## 是否可以参与实现 是否可以封装成把 数据abstract class HiDataItem<DATA, VH : RecyclerView.ViewHolder>(data: DATA? = null) > 由于本项目参与者的技术及精力有限无法满足大部分开发者的需求, 欢迎开发者参与贡献
Activity
woyoudianhuai commentedon Jan 1, 2025
这样多布局成了数据驱动了
liangjingkanji commentedon Jan 1, 2025
真正的数据驱动是删除View都不会报错
文档中第二种方式实现接口 不就是如此吗?
并且这不是严格意义的数据驱动,使用Databinding才是数据驱动
另外你这种方式会导致列表不知道何处就出现未知的条目类型, 所以我不推荐
BRV要求严格注册过的类型才允许展示, 方便追踪和排查问题