RecycleView java.lang.IndexOutOfBoundsException 崩溃

我是在ViewPager中内嵌了两个fragment,每个fragment中各有一个RecycleView,当其中一个RecycleView上下滑动时(没有对数据列表进行操作),然后右滑到第二个RecycleView时(对数据列表进行了更换操作),再上下滑动(没有对数据列表进行操作)就会崩溃退出…………

如果第一个RecycleView不操作,直接滑动到第二个RecycleView上下滑动并不会报错…………

按照网上的各种教程的方法都试过了,也不行,不知道为什么。通过调试发现可能是第一个RecycleView上下滑动时记录了它的position或数据列表,到第二个RecycleView时position就突然变成第一个的position,感觉可能是这里有错,可是具体还是不知道什么错误,求助各位大佬帮帮忙吧…………

 java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter positionViewHolder{d37e593 position=36 id=-1, oldPos=-1, pLpos:-1 no parent} android.support.v7.widget.RecyclerView{53c3fae VFED..... ........ 0,0-1080,1920 #7f090096 app:id/home_tag_like_recyclerview_id}, adapter:com.oners.tingmusic.adapter.RecyclerTagPageAdapter@4a2514f, layout:com.oners.tingmusic.layoutmanager.MyLayoutManager@ffce0dc, context:com.oners.tingmusic.HomePageActivity@f01bf5a
        at android.support.v7.widget.RecyclerView$Recycler.validateViewHolderForOffsetPosition(RecyclerView.java:5610)
        at android.support.v7.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:5792)
        at android.support.v7.widget.GapWorker.prefetchPositionWithDeadline(GapWorker.java:285)
        at android.support.v7.widget.GapWorker.flushTaskWithDeadline(GapWorker.java:342)
        at android.support.v7.widget.GapWorker.flushTasksWithDeadline(GapWorker.java:358)
        at android.support.v7.widget.GapWorker.prefetch(GapWorker.java:365)
        at android.support.v7.widget.GapWorker.run(GapWorker.java:396)
        at android.os.Handler.handleCallback(Handler.java:793)
        at android.os.Handler.dispatchMessage(Handler.java:98)
        at android.os.Looper.loop(Looper.java:173)
        at android.app.ActivityThread.main(ActivityThread.java:6698)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:782)
阅读 4k
1 个回答

虽然不太明白你的意思,但是一般对于索引越界,首先根据问题定位错误行,如果无法定位,重点检查所使用数据结构存取的地方,是否有错误。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题