美文网首页
java.lang.IndexOutOfBoundsExcept

java.lang.IndexOutOfBoundsExcept

作者: fuuuuuccccck | 来源:发表于2016-05-17 15:27 被阅读2331次

前段时间,为了对项目中分页加载更新数据封装,出现了一个小bug,就是

java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid item position 18(offset:18).state:72

而且,这是recyclerview内部报出的bug,没有指出我项目中哪里的错,比如下图

看了一下我的代码,是这样写的

报出这个bug是在我上拉加载更多了一页后,再下拉刷新,也就是listData变小了才会出现

因为涉及到加载图片的时候,如果更新数据用notifyDataSetChanged会导致图片闪烁一下,所以用notifyItemRangeChanged进行局部更新,这里出现的情况是,本身我的recyclerView列表数已经是20个了,这时候下拉刷新,loadPage=1,获取到的listAdd为10个,项目的需求是只要下拉刷新就要把以前的数据清理掉,所以这里的运算结果是listData=10,然后执行notifyItemRangeChanged(0,10)就报错了,稍微改一下就可以了

当刷新时用notifyDataSetChanged,增加时用notifyItemRangeChanged,就可以避免这样的问题了

相关文章

网友评论

      本文标题:java.lang.IndexOutOfBoundsExcept

      本文链接:https://www.haomeiwen.com/subject/seeirttx.html