BaseRecyclerViewAdapterHelper BaseQuickAdapter继承传入泛型VH,以便使用RecyclerView重载方法onViewAttachedToWindow、onViewRecycled等

qojgxg4l  于 3个月前  发布在  其他
关注(0)|答案(1)|浏览(57)

目前源码中BaseQuickAdapter中实现:
abstract class BaseQuickAdapter<T : Any, VH : RecyclerView.ViewHolder>(
open var items: List = emptyList()
) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {

}
adapter重载onViewRecycled方法时:
override fun onViewRecycled(holder: RecyclerView.ViewHolder) {
super.onViewRecycled()
}
这样需要对holder进行转换才能得到对应的ViewBinding,建议继承RecyclerView.Adapter和之前版本实现一样传入泛型VH,改成:
abstract class BaseQuickAdapter<T : Any, VH : RecyclerView.ViewHolder>(
open var items: List = emptyList()
) : RecyclerView.Adapter() {

}

6ojccjat

6ojccjat1#

这个实在没有办法,因为 BaseQuickAdapter 还有内部的 StateLayoutVH,不能在class处指定为泛型VH

相关问题