StaggeredGridLayoutManager报错IndexOutOfBoundsException

E/AndroidRuntime: FATAL EXCEPTION: main
              Process: co.netlong.skyoto, PID: 26079
              java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
                  at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
                  at java.util.ArrayList.get(ArrayList.java:308)
                  at android.support.v7.widget.StaggeredGridLayoutManager$Span.calculateCachedStart(StaggeredGridLayoutManager.java:2357)
                  at android.support.v7.widget.StaggeredGridLayoutManager$Span.getStartLine(StaggeredGridLayoutManager.java:2374)
                  at android.support.v7.widget.StaggeredGridLayoutManager.checkSpanForGap(StaggeredGridLayoutManager.java:396)
                  at android.support.v7.widget.StaggeredGridLayoutManager.hasGapsToFix(StaggeredGridLayoutManager.java:345)
                  at android.support.v7.widget.StaggeredGridLayoutManager.checkForGaps(StaggeredGridLayoutManager.java:272)
                  at android.support.v7.widget.StaggeredGridLayoutManager.onScrollStateChanged(StaggeredGridLayoutManager.java:307)
                  at android.support.v7.widget.RecyclerView.dispatchOnScrollStateChanged(RecyclerView.java:3977)
                  at android.support.v7.widget.RecyclerView.setScrollState(RecyclerView.java:1219)
                  at android.support.v7.widget.RecyclerView.access$3900(RecyclerView.java:147)
                  at android.support.v7.widget.RecyclerView$ViewFlinger.run(RecyclerView.java:4128)
                  at android.view.Choreographer$CallbackRecord.run(Choreographer.java:777)
                  at android.view.Choreographer.doCallbacks(Choreographer.java:590)
                  at android.view.Choreographer.doFrame(Choreographer.java:559)
                  at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:763)
                  at android.os.Handler.handleCallback(Handler.java:739)
                  at android.os.Handler.dispatchMessage(Handler.java:95)
                  at android.os.Looper.loop(Looper.java:145)
                  at android.app.ActivityThread.main(ActivityThread.java:5835)
                  at java.lang.reflect.Method.invoke(Native Method)
                  at java.lang.reflect.Method.invoke(Method.java:372)
                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)

使用viewpager+4个fragment

每个fragment中为swiperefreshlayout+recyclerview

出现上述错误,最终错误原因不在StaggeredGridLayoutManager,而是viewpager的状态保存

解决方法:
viewpager.setOffscreenPageLimit(list.size() - 1);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,235评论 25 709
  • 2016年9月,工作日的午后醒来,看着电脑屏幕有些刺眼,听着音乐眯了一会,换歌。看了下情况,没有工作要处理,继续迷...
    此_时_彼_刻阅读 4,524评论 0 0
  • 十年前的自己与现在的自己相遇 是不满意,还是预期的结果? 我不想再站在你的背后,等你转身 那我背道而行如何?
    娇蛮公主阅读 1,652评论 0 1
  • 其实就是想发表一下,然后让封面有个文章! 有人说在哪跌倒就在哪趴着,然后股涌股涌的往前走。时间并没有使自己长大太多...
    海蓝伊阅读 1,364评论 0 0
  • 今天宝宝打翻了一袋瓜子,我让他捡起来,他边捡边说:妈妈不是跟你说过吗,农民伯伯很辛苦的,谁知盘中餐,粒粒皆...
    霞光暖阳阅读 1,378评论 0 0

友情链接更多精彩内容