-5

リサイクラーを正常にロードし、データが正しく表示されます。しかし、私は特定の状態で私の活力を再現する必要があります。アクティビティを再作成すると、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

あなたは** **は、ArrayIndexOutOfBoundsExceptionを得ています。 これは、配列内に存在しない配列項目にアクセスしようとしていることを意味します。 同様の質問はここで答えられました - http://stackoverflow.com/questions/35577548/recycler-view-fatal-exception-java-lang-arrayindexoutofboundsexception – Ash

+0

そして、 'java.lang.ArrayIndexOutOfBoundsException :start < 0 || end > len。 start = -1、end = 11、len = 11'? –

+0

私は珍しいことはしません。私はまだクラッシュしています。 – user3492435

答えて

0

私の場合、Default_posが-1でないnotifyItemChanged(Default_pos)を試していました。

私はArrayIndexOutOfBoundを取得していました。

0

あなたのactivityを再作成しようとしている場合は、RecyclerViewはまだview itemsComputingLayout

RecyclerViewを表示しようとすると、ロックダウン状態にあり、 内容アダプタを更新しようとするが、例外

になります

解決策

  • ハンドラーを使用してrecreate activityを延期するだけです。
  • 変更を発生させる前に、RecyclerView.isComputingLayout()がfalseを返すようにしてください。

For more details Check my answer

関連する問題