google / flexbox-layout

Flexbox for Android
Apache License 2.0
18.25k stars 1.79k forks source link

indexInFlexLine is not consistent in onNewFlexItemAdded() method #606

Open blah1234 opened 2 years ago

blah1234 commented 2 years ago

Issues and steps to reproduce

In FlexboxHelper.calculateFlexLines(), there is the following code block:

if (isWrapRequired(child, mainMode, mainSize, flexLine.mMainSize,
                    getViewMeasuredSizeMain(child, isMainHorizontal)
                            + getFlexItemMarginStartMain(flexItem, isMainHorizontal) +
                            getFlexItemMarginEndMain(flexItem, isMainHorizontal),
                    flexItem, i, indexInFlexLine, flexLines.size())) {
                <snip!>

                flexLine = new FlexLine();
                flexLine.mItemCount = 1;
                flexLine.mMainSize = mainPaddingStart + mainPaddingEnd;
                flexLine.mFirstIndex = i;
 -->               indexInFlexLine = 0;    <---
                largestSizeInCross = Integer.MIN_VALUE;
            } else {
                flexLine.mItemCount++;
-->                indexInFlexLine++;     <---
            }

So for the 1st FlexLine in FlexboxLayout, indexInFlexLine starts at 1, but for all subsequent FlexLines in the FlexboxLayout, indexInFlexLine starts at 0.

Expected behavior

indexInFlexLine should be consistently 0-indexed

Version of the flexbox library

3.0.0