From 61c41bf6175222c265973b5fb0063b3e3c5d02c8 Mon Sep 17 00:00:00 2001 From: Alan Viverette Date: Thu, 5 May 2016 17:52:10 +0000 Subject: Revert "Always assign leftover pixels to last weighted child" This reverts commit cc26636f08da89f9750f550d66aa213f1ae24f7f. Bug: 27690033 Change-Id: Ib7084dd8961cd486de4e6b13e36da7be887b1835 --- core/java/android/widget/LinearLayout.java | 30 ++++++------------------------ 1 file changed, 6 insertions(+), 24 deletions(-) diff --git a/core/java/android/widget/LinearLayout.java b/core/java/android/widget/LinearLayout.java index 0b73afb657f7..f75b74bb9a14 100644 --- a/core/java/android/widget/LinearLayout.java +++ b/core/java/android/widget/LinearLayout.java @@ -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; -- cgit v1.2.3-59-g8ed1b