CymChad / BaseRecyclerViewAdapterHelper

BRVAH:Powerful and flexible RecyclerAdapter
http://www.recyclerview.org/
MIT License
24.3k stars 5.15k forks source link

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

Open skyCracks opened 9 months ago

skyCracks commented 9 months ago

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

} 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() {

}

limuyang2 commented 9 months ago

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