From d959b3dd7762335321ac31b49c0fac91d9ee3daa Mon Sep 17 00:00:00 2001 From: Takeshi Hagikura Date: Mon, 14 May 2018 13:54:30 +0900 Subject: [PATCH] Fix the crash using DiffUtil with FlexboxLayoutManager. Fixes #332 --- .../java/com/google/android/flexbox/FlexboxLayoutManager.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/flexbox/src/main/java/com/google/android/flexbox/FlexboxLayoutManager.java b/flexbox/src/main/java/com/google/android/flexbox/FlexboxLayoutManager.java index 804dfcfa..83a43033 100644 --- a/flexbox/src/main/java/com/google/android/flexbox/FlexboxLayoutManager.java +++ b/flexbox/src/main/java/com/google/android/flexbox/FlexboxLayoutManager.java @@ -2876,7 +2876,8 @@ private void assignFromView(View anchor) { mPosition = getPosition(anchor); mAssignedFromSavedState = false; assert mFlexboxHelper.mIndexToFlexLine != null; - int flexLinePosition = mFlexboxHelper.mIndexToFlexLine[mPosition]; + int flexLinePosition = + mFlexboxHelper.mIndexToFlexLine[mPosition != NO_POSITION ? mPosition : 0]; mFlexLinePosition = flexLinePosition != NO_POSITION ? flexLinePosition : 0; // It's likely that the view is the first item in a flex line, but if not get the // index of the first item in the same line because the calculation of the flex lines