zoukankan      html  css  js  c++  java
  • 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方法

    1. public class WrapContentLinearLayoutManager extends LinearLayoutManager {  
    2.     public WrapContentLinearLayoutManager(Context context) {  
    3.         super(context);  
    4.     }  
    5.   
    6.     public WrapContentLinearLayoutManager(Context context, int orientation, boolean reverseLayout) {  
    7.         super(context, orientation, reverseLayout);  
    8.     }  
    9.   
    10.     public WrapContentLinearLayoutManager(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {  
    11.         super(context, attrs, defStyleAttr, defStyleRes);  
    12.     }  
    13.   
    14.     @Override  
    15.     public void onLayoutChildren(RecyclerView.Recycler recycler, RecyclerView.State state) {  
    16.         try {  
    17.             super.onLayoutChildren(recycler, state);  
    18.         } catch (IndexOutOfBoundsException e) {  
    19.             e.printStackTrace();  
    20.         }  
    21.     }  
    22. }  

    2、设置RecyclerView的布局管理为WrapContentLinearLayoutManager对象

    1. mRecyclerView.setLayoutManager(new WrapContentLinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));  


  • 相关阅读:
    【洛谷P1297】单选错位【期望】
    【洛谷P1297】单选错位【期望】
    【POJ1201】Intervals【差分约束】
    【POJ1201】Intervals【差分约束】
    【洛谷P3275】糖果【差分约束】【负环】
    【洛谷P3275】糖果【差分约束】【负环】
    【洛谷P1768】天路【负环】【二分】【数论】
    【洛谷P1768】天路【负环】【二分】【数论】
    【JZOJ4256】平均数【二分】
    【JZOJ4256】平均数【二分】
  • 原文地址:https://www.cnblogs.com/kim-liu/p/7513837.html
Copyright © 2011-2022 走看看