RecycleView Bug:java.lang.IndexOutOfBoundsException: Inconsistency detected.
Posted kim_liu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RecycleView Bug:java.lang.IndexOutOfBoundsException: Inconsistency detected.相关的知识,希望对你有一定的参考价值。
今天使用RecyclerView时,上下两个RecyclerView,在实现下拉刷新时,报错:
java.lang.IndexOutOfBoundsException: Inconsistency detected.
Invalid view holder adapter positionViewHolder{56798b2 position=2 id=-1, oldPos=2, pLpos:-1 scrap [attachedScrap] tmpDetached no parent}
在网上看到这个方法可以暂时性解决问题
其实也不是什么解决方法,只是把这个异常捕获了,不让他奔溃了,这个问题的终极解决方案还是得让google去修复。
1、创建一个类LinearLayoutManagerWrapper继承LinearLayoutManager,重写onLayoutChildren方法
- public class WrapContentLinearLayoutManager extends LinearLayoutManager {
- public WrapContentLinearLayoutManager(Context context) {
- super(context);
- }
- public WrapContentLinearLayoutManager(Context context, int orientation, boolean reverseLayout) {
- super(context, orientation, reverseLayout);
- }
- public WrapContentLinearLayoutManager(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
- super(context, attrs, defStyleAttr, defStyleRes);
- }
- @Override
- public void onLayoutChildren(RecyclerView.Recycler recycler, RecyclerView.State state) {
- try {
- super.onLayoutChildren(recycler, state);
- } catch (IndexOutOfBoundsException e) {
- e.printStackTrace();
- }
- }
- }
2、设置RecyclerView的布局管理为WrapContentLinearLayoutManager对象
- mRecyclerView.setLayoutManager(new WrapContentLinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
以上是关于RecycleView Bug:java.lang.IndexOutOfBoundsException: Inconsistency detected.的主要内容,如果未能解决你的问题,请参考以下文章
Bug:java.lang.IllegalStateException
BUG- maven工程java.lang.ClassNotFoundException
如何修复MainActivity没有navcontroller?
MyCat bug记录:backend connect: java.lang.IllegalArgumentException: Invalid DataSource:0
某bug记录:java.lang.RuntimeException: Unable to start activity ComponentInfo
spring整合mybatis bug解决java.lang.IllegalArgumentException: Mapped Statements collection does not conta