Open yudanhezhongweijie opened 4 years ago
我这边也出现了这个问题(3.0.4),
Adapter.setEmptyView(R.layout.empty_view)
(使用的layout id)的调用发生在RecyclerView.setAdapter(adapter)
之前,在老版本是可以的,但是3.0.4中是不行的(3.0.4中setEmptyView(layoutResId: Int)
对mRecyclerView
进行了判空操作)。
==>先RecyclerView.setAdapter(adapter)
,再Adapter.setEmptyView(R.layout.empty_view)
,就不会出现这个问题了。(具体原因还没研究。。)
ps:
楼主的setList(null)
也可以规避,即使Adapter.setEmptyView(R.layout.empty_view)
顺序在前。
用的是3.0.4 先给adapter设置一遍数据setDiffNewData(list)然后再setDiffNewData(null)会出以下bug
Fatal Exception: java.lang.IndexOutOfBoundsException Inconsistency detected. Invalid view holder adapter positionBaseViewHolder{f92e379 position=0 id=-1, oldPos=3, pLpos:3 scrap [attachedScrap] tmpDetached no parent} androidx.recyclerview.widget.RecyclerView{feb8aab VFE..V... ........ 0,0-1080,2010 #7f0a0239 app:id/recyclerView},
规避方法就是直接用
setList(null)