setLoadMoreEnabled() & addData() 导致异常
CxmyDev opened this issue · 4 comments
CxmyDev commented
setLoadMoreEnabled() & addData(),2 个 Api 一起调用,会导致 IndexOutOfBoundsException 异常;
Adapter 使用的 BaseRecyclerAdapter 的子类;
场景:分页场景下,LoadMore 至最后一页时,addData() 的同时,需调用 setLoadMoreEnabled(false) 禁用 LoadMore;
java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter positionSimpleViewHolder{347ed11 position=18 id=-1, oldPos=16, pLpos:16 scrap [attachedScrap] tmpDetached no parent}
youlookwhat commented
感谢提出,我看一下
youlookwhat commented
这个问题很多人遇到过,也给了解决方案,主要是继承LayoutManager将发生异常的方法try一下,具体使用:ByLinearLayoutManager。在分割线-线性drawable那个示例中可以看到
CxmyDev commented
嗯,还是觉得直接 catch 住处理不太好;
我这边临时的解决方案是将 rv. setLoadMoreEnabled() 放在 rv.post{rv. setLoadMoreEnabled(false)} 中执行,暂时可以解决这个问题。
CxmyDev commented
Noting.