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)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
虽然不太明白你的意思,但是一般对于索引越界,首先根据问题定位错误行,如果无法定位,重点检查所使用数据结构存取的地方,是否有错误。