youlookwhat/ByRecyclerView

setLoadMoreEnabled() & addData() 导致异常

CxmyDev opened this issue · 4 comments

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}

感谢提出,我看一下

这个问题很多人遇到过,也给了解决方案,主要是继承LayoutManager将发生异常的方法try一下,具体使用:ByLinearLayoutManager。在分割线-线性drawable那个示例中可以看到

嗯,还是觉得直接 catch 住处理不太好;
我这边临时的解决方案是将 rv. setLoadMoreEnabled() 放在 rv.post{rv. setLoadMoreEnabled(false)} 中执行,暂时可以解决这个问题。

Noting.