Closed lx36301766 closed 3 years ago
如果是我要在 BRVAH 使用 ViewBinding 的话也是会这样封装,如果想不改动太多代码直接兼容,目前我有个思路。等我迟点验证一下可行的话,我会发一篇博客补充讲下 BRVAH 封装 ViewBinding 的思路。
目前对 BRVAH 进行了适配,添加依赖:
implementation 'com.dylanc:viewbinding-brvah-ktx:1.1.0-alpha'
在适配器重写 createBaseViewHolder() 方法,在返回值末尾添加 withBinding() 代码,然后就能通过 holder.getViewBinding() 来使用 ViewBinding 了。
class FooAdapter : BaseQuickAdapter<Foo, BaseViewHolder>(R.layout.item_foo) {
override fun createBaseViewHolder(view: View): BaseViewHolder {
return super.createBaseViewHolder(view).withBinding(ItemFooBinding::bind)
}
override fun convert(holder: BaseViewHolder, item: Foo) {
holder.getViewBinding<ItemFooBinding>()
.apply {
tvFoo.text = item.value
}
}
}
Hi兄弟,非常感谢分享这个思路,我正好要用到
但我用的是adapter库是BRVAH,不是MultiType,直接使用还不太方便,需要额外再创建一个文件把BindingViewHolder拷贝出来改为继承BaseViewHolder,有没有其它办法直接兼容的?
可以看看这个issue里我的回答: https://github.com/CymChad/BaseRecyclerViewAdapterHelper/issues/3138