我正常加载回收器并正确显示数据。但是我要求在某种条件下重新创造我的活力。当我重新创建我的活动时,再次初始化Recycler视图并加载新的数据集。但是这次我遇到了崩溃。以下是日志。任何帮助都会非常感激.. !!!
Fatal Exception: java.lang.ArrayIndexOutOfBoundsException: start < 0 || end > len. start=-1, end=11, len=11
at java.util.Arrays.checkStartAndEnd(Arrays.java:1732)
at java.util.Arrays.fill(Arrays.java:803)
at android.support.v7.widget.StaggeredGridLayoutManager$LazySpanLookup.invalidateAfter(StaggeredGridLayoutManager.java:2652)
at android.support.v7.widget.StaggeredGridLayoutManager.handleUpdate(StaggeredGridLayoutManager.java:1496)
at android.support.v7.widget.StaggeredGridLayoutManager.onItemsUpdated(StaggeredGridLayoutManager.java:1472)
at android.support.v7.widget.RecyclerView$6.dispatchUpdate(RecyclerView.java:781)
at android.support.v7.widget.RecyclerView$6.onDispatchFirstPass(RecyclerView.java:769)
at android.support.v7.widget.AdapterHelper.dispatchFirstPassAndUpdateViewHolders(AdapterHelper.java:316)
at android.support.v7.widget.AdapterHelper.dispatchAndUpdateViewHolders(AdapterHelper.java:302)
at android.support.v7.widget.AdapterHelper.applyUpdate(AdapterHelper.java:222)
at android.support.v7.widget.AdapterHelper.preProcess(AdapterHelper.java:106)
at android.support.v7.widget.RecyclerView.consumePendingUpdateOperations(RecyclerView.java:1492)
at android.support.v7.widget.RecyclerView.access$400(RecyclerView.java:151)
at android.support.v7.widget.RecyclerView$1.run(RecyclerView.java:305)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858)
at android.view.Choreographer.doCallbacks(Choreographer.java:670)
at android.view.Choreographer.doFrame(Choreographer.java:603)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
答案 0 :(得分:0)
就我而言,我正在尝试notifyItemChanged(Default_pos),其中Default_pos为-1,但不存在。
因此我得到了ArrayIndexOutOfBound。
答案 1 :(得分:0)
当您尝试重新创建activity
时,RecyclerView
仍在尝试显示view items
和ComputingLayout
RecyclerView处于锁定状态,并且任何尝试更新适配器 内容将导致异常
<强>解决方案强>
recreate activity
。RecyclerView.isComputingLayout()
应返回false。