在RecyclerView,安卓面试问题

本文详细介绍了在Android开发中如何在RecyclerView中使用ViewBinding,包括创建Adapter、ViewHolder,以及结合Paging3库进行数据绑定。同时讨论了如何处理列表的表头表尾占位,并提供了Paging3与DataBinding或ViewBinding的结合使用示例。

ViewBinding

  • 当AutomaticBindingAdapter无法满足需求时,可使用MutableBindingAdapter + ViewBindingHolder

//创建Adapter,继承自MutableBindingAdapter,共3个泛型参数,分别是:
// T -> 实现Identifiable接口的数据类
// VH -> ViewBindingHolder的实现类
// VB -> 根据布局自动生成的ViewBinding或ViewDataBinding实现类
//需要向构造方法中传递一个从VB创建VH的工厂方法,一般直接引用VH实现类的构造方法即可
//如果没有传递这个参数,则需要实现onCreateViewHolder方法
class ItemAdapter : MutableBindingAdapter<Item, ItemBinding, ItemHolder>(::ItemHolder)

//声明复用的ViewHolder,有两个泛型参数,分别是:
// T -> 实现Identifiable接口的数据类
// VB -> Item布局自动生成的ViewBinding实现类
// 实现binding方法,可满足各种需求。
class ItemHolder(binding: ItemBinding) : ViewBindingHolder<Item, ItemBinding>(binding) {

init {
binding.root.setOnClickListener {
val item = list.getItem(layoutPosition)
//do something…
}
}

override fun binding(position: Int) {
//默认提供clickEvent点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值