Merge "Revert "Always assign leftover pixels to last weighted child"" into nyc-dev

This commit is contained in:
Alan Viverette
2016-05-05 18:37:41 +00:00
committed by Android (Google) Code Review

View File

@@ -708,7 +708,6 @@ public class LinearLayout extends ViewGroup {
final int baselineChildIndex = mBaselineAlignedChildIndex;
final boolean useLargestChild = mUseLargestChild;
int lastWeightedChildIndex = -1;
int largestChildHeight = Integer.MIN_VALUE;
int consumedExcessSpace = 0;
@@ -730,10 +729,8 @@ public class LinearLayout extends ViewGroup {
}
final LayoutParams lp = (LayoutParams) child.getLayoutParams();
if (lp.weight > 0) {
totalWeight += lp.weight;
lastWeightedChildIndex = i;
}
totalWeight += lp.weight;
final boolean useExcessSpace = lp.height == 0 && lp.weight > 0;
if (heightMode == MeasureSpec.EXACTLY && useExcessSpace) {
@@ -888,13 +885,7 @@ public class LinearLayout extends ViewGroup {
final LayoutParams lp = (LayoutParams) child.getLayoutParams();
final float childWeight = lp.weight;
if (childWeight > 0) {
final int share;
if (i == lastWeightedChildIndex) {
share = remainingExcess;
} else {
share = (int) (childWeight * remainingExcess / remainingWeightSum);
}
final int share = (int) (childWeight * remainingExcess / remainingWeightSum);
remainingExcess -= share;
remainingWeightSum -= childWeight;
@@ -1055,7 +1046,6 @@ public class LinearLayout extends ViewGroup {
final boolean isExactly = widthMode == MeasureSpec.EXACTLY;
int lastWeightedChildIndex = -1;
int largestChildWidth = Integer.MIN_VALUE;
int usedExcessSpace = 0;
@@ -1077,10 +1067,8 @@ public class LinearLayout extends ViewGroup {
}
final LayoutParams lp = (LayoutParams) child.getLayoutParams();
if (lp.weight > 0) {
totalWeight += lp.weight;
lastWeightedChildIndex = i;
}
totalWeight += lp.weight;
final boolean useExcessSpace = lp.width == 0 && lp.weight > 0;
if (widthMode == MeasureSpec.EXACTLY && useExcessSpace) {
@@ -1279,13 +1267,7 @@ public class LinearLayout extends ViewGroup {
final LayoutParams lp = (LayoutParams) child.getLayoutParams();
final float childWeight = lp.weight;
if (childWeight > 0) {
final int share;
if (i == lastWeightedChildIndex) {
share = remainingExcess;
} else {
share = (int) (childWeight * remainingExcess / remainingWeightSum);
}
final int share = (int) (childWeight * remainingExcess / remainingWeightSum);
remainingExcess -= share;
remainingWeightSum -= childWeight;