RecyclerView: обнаружено несоответствие. Неверная позиция товара

Наш QA обнаружил ошибку: при вращении устройства Android (Droid Turbo), следующееСбой, связанный с RecyclerView получилось:

java.lang.IndexOutOfBoundsException: обнаружено несоответствие. Недопустимая позиция элемента 2 (смещение: 2). Состояние: 3

Для меня это выглядит как внутренняя ошибка внутри RecyclerView, так как я не могу думать ни о каком способе того, чтобы это было вызвано непосредственно нашим кодом ...

Кто-нибудь сталкивался с этой проблемой?

Каково было бы решение?

Возможно, жестокий обходной путь может заключаться в том, чтобы поймать исключение, когда оно происходит, и заново создать экземпляр RecyclverView с нуля, чтобы избежать получения поврежденного состояния.

Но, если возможно, я бы хотел лучше понять проблему (и, возможно, исправить ее в источнике), а не маскировать ее.

Ошибка не легко воспроизвести, но это смертельно, когда это происходит.

Полная трассировка стека:

W / dalvikvm (7546): threadid = 1: поток выходит с необработанным исключением (group = 0x41987d40) E / AndroidRuntime (7546): FATAL EXCEPTION: main E / AndroidRuntime (7546): Процесс: com.oblong.mezzedroid, PID: 7546 E / AndroidRuntime (7546): java.lang.IndexOutOfBoundsException: обнаружено несоответствие. Недопустимая позиция элемента 2 (смещение: 2). Состояние: 3 E / AndroidRuntime (7546): в android.support.v7.widget.RecyclerView $ Recycler.getViewForPosition (RecyclerView.java:3382) E / AndroidRuntime (7546): в android .support.v7.widget.RecyclerView $ Recycler.getViewForPosition (RecyclerView.java:3340) E / AndroidRuntime (7546): в android.support.v7.widget.LinearLayoutManager $ LayoutState.next (LinearLayoutManager.java:R1time / Android10 / E / E (7546): на android.support.v7.widget.LinearLayoutManager.layoutChunk (LinearLayoutManager.java:1306) E / AndroidRuntime (7546): на android.support.v7.widget.LinearLayoutManager.fill (LinearLayoutManager.java / AndroidRuntime (7546). ) E / AndroidRuntime (7546): на android.support.v7.widget.RecyclerView.dispatchLayout (RecyclerView.java:1942 ) E / AndroidRuntime (7546): на android.support.v7.widget.RecyclerView.onLayout (RecyclerView.java:2237) E / AndroidRuntime (7546): на org.liboid.recycler_view.LiRecyclerView.onLayout (LiRecyclerView.java:30 ) E / AndroidRuntime (7546): на android.view.View.layout (View.java:14946) E / AndroidRuntime (7546): на android.view.ViewGroup.layout (ViewGroup.java:4651) E / AndroidRuntime (7546 ): в android.widget.FrameLayout.layoutChildren (FrameLayout.java:453) E / AndroidRuntime (7546): в android.widget.FrameLayout.onLayout (FrameLayout.java:388) E / AndroidRuntime (7546): в android.view .View.layout (View.java:14946) E / AndroidRuntime (7546): в android.view.ViewGroup.layout (ViewGroup.java:4651) E / AndroidRuntime (7546): в android.widget.FrameLayout.layoutChildren (FrameLayout .java: 453) E / AndroidRuntime (7546): на android.widget.FrameLayout.onLayout (FrameLayout.java:388) E / AndroidRuntime (7546): на android.view.View.layout (View.java:14946) E / AndroidRuntime (7546): на android.view.ViewGroup.layout (ViewGroup.java: 4651) E / AndroidRuntime (7546): в android.widget.LinearLayout.setChildFrame (LinearLayout.java:1671) E / AndroidRuntime (7546): в android.widget.LinearLayout.layoutVertical (LinearLayout.java:1525) E / AndroidRuntime 7546): на android.widget.LinearLayout.onLayout (LinearLayout.java:1434) E / AndroidRuntime (7546): на com.oblong.mezzedroid.workspace.content.bins.BinsContainerLayout.onLayout (BinsContainerLayout.java:22) AndroidRuntime (7546): на android.view.View.layout (View.java:14946) E / AndroidRuntime (7546): на android.view.ViewGroup.layout (ViewGroup.java:4651) E / AndroidRuntime (7546): на android.widget.LinearLayout.setChildFrame (LinearLayout.java:1671) E / AndroidRuntime (7546): на android.widget.LinearLayout.layoutVertical (LinearLayout.java:1525) E / AndroidRuntime (7546): на android.waygetar. onLayout (LinearLayout.java:1434) E / AndroidRuntime (7546): на android.view.View.layout (View.java:14946) E / AndroidRuntime (7546): на android.view.ViewGroup.layout (ViewGroup.java: 4651) E / Android Время выполнения (7546): в android.widget.FrameLayout.layoutChildren (FrameLayout.java:453) E / AndroidRuntime (7546): в android.widget.FrameLayout.onLayout (FrameLayout.java:388) E / AndroidRuntime (7546): в android.view.View.layout (View.java:14946) E / AndroidRuntime (7546): на android.view.ViewGroup.layout (ViewGroup.java:4651) E / AndroidRuntime (7546): на android.widget.FrameLayout. layoutChildren (FrameLayout.java:453) E / AndroidRuntime (7546): в android.widget.FrameLayout.onLayout (FrameLayout.java:388) E / AndroidRuntime (7546): в android.view.View.layout (View.java: 14946) E / AndroidRuntime (7546): на android.view.ViewGroup.layout (ViewGroup.java:4651) E / AndroidRuntime (7546): на android.widget.LinearLayout.setChildFrame (LinearLayout.java:1671) E / AndroidRuntime ( 7546): на android.widget.LinearLayout.layoutVertical (LinearLayout.java:1525) E / AndroidRuntime (7546): на android.widget.LinearLayout.onLayout (LinearLayout.java:1434) E / AndroidRuntime (7546): на андроид. view.View.layout (View.java:14946) E / Andro idRuntime (7546): в android.view.ViewGroup.layout (ViewGroup.java:4651) E / AndroidRuntime (7546): в android.widget.FrameLayout.layoutChildren (FrameLayout.java:453) E / AndroidRuntime (7546): в android.widget.FrameLayout.onLayout (FrameLayout.java:388) E / AndroidRuntime (7546): на android.view.View.layout (View.java:14946) E / AndroidRuntime (7546): на android.view.ViewGroup. layout (ViewGroup.java:4651) E / AndroidRuntime (7546): в android.widget.LinearLayout.setChildFrame (LinearLayout.java:1671) E / AndroidRuntime (7546): в android.widget.LinearLayout.layoutVertical (LinearLayout.j 1525) E / AndroidRuntime (7546): на android.widget.LinearLayout.onLayout (LinearLayout.java:1434) E / AndroidRuntime (7546): на android.view.View.layout (View.java:14946) E / AndroidRuntime ( 7546): в android.view.ViewGroup.layout (ViewGroup.java:4651) E / AndroidRuntime (7546): в android.widget.FrameLayout.layoutChildren (FrameLayout.java:453) E / AndroidRuntime (7546): в android. widget.FrameLayout.onLayout (FrameLayout.java:3 88) E / AndroidRuntime (7546): на android.view.View.layout (View.java:14946) E / AndroidRuntime (7546): на android.view.ViewGroup.layout (ViewGroup.java:4651) E / AndroidRuntime ( 7546): в android.view.ViewRootImpl.performLayout (ViewRootImpl.java:2132) E / AndroidRuntime (7546): в android.view.ViewRootImpl.performTraversals (ViewRootImpl.java:1872) E / AndroidRuntime (7546): в и

Ответы на вопрос(30)

Ваш ответ на вопрос