Skip to content
This repository has been archived by the owner on Jul 14, 2021. It is now read-only.

Commit

Permalink
Fix layout error when use padding in RangeGridLayoutHelper.
Browse files Browse the repository at this point in the history
  • Loading branch information
MikeAfc committed Jul 16, 2019
1 parent a3c36fe commit 4cefde5
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 25 deletions.
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
GROUP=com.alibaba.android
ARTIFACT=vlayout
VERSION=1
VERSION_NAME=1.2.25
VERSION_NAME=1.2.26
PACKAGING_TYPE=aar
useNewSupportLibrary=true
systemProp.compileSdkVersion=26
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,13 @@

package com.alibaba.android.vlayout.layout;

import java.util.Arrays;
import android.support.annotation.NonNull;
import android.support.v4.util.ArrayMap;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.RecyclerView.Recycler;
import android.support.v7.widget.RecyclerView.State;
import android.util.Log;
import android.view.View;

import com.alibaba.android.vlayout.LayoutManagerHelper;
import com.alibaba.android.vlayout.OrientationHelperEx;
Expand All @@ -35,13 +41,7 @@
import com.alibaba.android.vlayout.layout.GridLayoutHelper.DefaultSpanSizeLookup;
import com.alibaba.android.vlayout.layout.GridLayoutHelper.SpanSizeLookup;

import android.support.annotation.NonNull;
import android.support.v4.util.ArrayMap;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.RecyclerView.Recycler;
import android.support.v7.widget.RecyclerView.State;
import android.util.Log;
import android.view.View;
import java.util.Arrays;

import static android.support.v7.widget.LinearLayoutManager.VERTICAL;

Expand Down Expand Up @@ -258,8 +258,8 @@ public void layoutViews(RecyclerView.Recycler recycler, RecyclerView.State state

if (!layingOutInPrimaryDirection) {
// fill the remaining spacing this row
int itemSpanIndex = getSpanIndex(rangeStyle.mSpanSizeLookup, rangeStyle.mSpanCount, recycler, state, layoutState.getCurrentPosition());
int itemSpanSize = getSpanSize(rangeStyle.mSpanSizeLookup, recycler, state, layoutState.getCurrentPosition());
int itemSpanIndex = getSpanIndex(rangeStyle.mSpanSizeLookup, rangeStyle.mSpanCount, recycler, state, currentPosition);
int itemSpanSize = getSpanSize(rangeStyle.mSpanSizeLookup, recycler, state, currentPosition);


remainingSpan = itemSpanIndex + itemSpanSize;
Expand Down Expand Up @@ -343,20 +343,12 @@ public void layoutViews(RecyclerView.Recycler recycler, RecyclerView.State state
break; // item did not fit into this row or column
}

View view = layoutState.next(recycler);
if (view == null) {
break;
}

if (!isStartLine) {
isStartLine = helper.getReverseLayout() ? pos == mRangeStyle.getRange().getUpper().intValue()
: pos == mRangeStyle.getRange().getLower().intValue();
}
if (!isSecondStartLine) {
if (!rangeStyle.equals(mRangeStyle)) {
if (mLayoutWithAnchor) {
pos = layoutState.getCurrentPosition();
}
isSecondStartLine = helper.getReverseLayout() ? pos == rangeStyle.getRange().getUpper()
.intValue() : pos == rangeStyle.getRange().getLower().intValue();
}
Expand All @@ -369,14 +361,19 @@ public void layoutViews(RecyclerView.Recycler recycler, RecyclerView.State state

if (!isSecondEndLine) {
if (!rangeStyle.equals(mRangeStyle)) {
if (mLayoutWithAnchor) {
pos = layoutState.getCurrentPosition();
}
isSecondEndLine = helper.getReverseLayout() ? pos == rangeStyle.getRange().getLower()
.intValue() : pos == rangeStyle.getRange().getUpper().intValue();
if (DEBUG) {
Log.d(TAG, "isSecondEndLineLogic:" + isSecondEndLine + " helper.getReverseLayout()=" + helper.getReverseLayout() + " pos=" + pos + " rangeStyle.getRange().getLower()=" + rangeStyle.getRange().getLower() + " rangeStyle.getRange().getUpper()=" + rangeStyle.getRange().getUpper());
}
}
}

View view = layoutState.next(recycler);
if (view == null) {
break;
}

consumedSpanCount += spanSize;
rangeStyle.mSet[count] = view;
count++;
Expand Down Expand Up @@ -528,6 +525,9 @@ public void layoutViews(RecyclerView.Recycler recycler, RecyclerView.State state
if (isSecondEndLine) {
secondEndSpace = (layoutInVertical ? rangeStyle.getMarginBottom() + rangeStyle.getPaddingBottom()
: rangeStyle.getMarginRight() + rangeStyle.getPaddingRight());
if (DEBUG) {
Log.d(TAG, "isSecondEndLineLogic:" + isSecondEndLine + " pos=" + currentPosition + " secondEndSpace=" + secondEndSpace);
}
}


Expand Down Expand Up @@ -613,8 +613,8 @@ public void layoutViews(RecyclerView.Recycler recycler, RecyclerView.State state

if (DEBUG) {
Log.d(TAG,
(layoutStart ? "⬆ " : "⬇ ") + currentPosition + " consumed " + result.mConsumed + " startSpace " + startSpace + " endSpace "
+ endSpace + " secondStartSpace " + secondStartSpace + " secondEndSpace " + secondEndSpace + " lastUnconsumedSpace " + lastUnconsumedSpace);
(layoutStart ? "⬆ " : "⬇ ") + currentPosition + " consumed " + result.mConsumed + " startSpace " + startSpace + " endSpace "
+ endSpace + " secondStartSpace " + secondStartSpace + " secondEndSpace " + secondEndSpace + " lastUnconsumedSpace " + lastUnconsumedSpace + " isSecondEndLine=" + isSecondEndLine);
}

int left = 0, right = 0, top = 0, bottom = 0;
Expand Down Expand Up @@ -670,7 +670,7 @@ public void layoutViews(RecyclerView.Recycler recycler, RecyclerView.State state

if (DEBUG) {
Log.d(TAG, "layout item in position: " + params.getViewPosition() + " with text with SpanIndex: " + index + " into (" +
left + ", " + top + ", " + right + ", " + bottom + " )");
left + ", " + top + ", " + right + ", " + bottom + "), topInfo=[layoutState.getOffset()=" + layoutState.getOffset() + " startSpace=" + startSpace + " secondStartSpace=" + secondStartSpace + " consumedGap=" + consumedGap + " lastUnconsumedSpace=" + lastUnconsumedSpace + "]");
}

// We calculate everything with View's bounding box (which includes decor and margins)
Expand Down

0 comments on commit 4cefde5

Please sign in to comment.