Exclude children from excess space distribution when using largest child
Preserves API 23 behavior.
Bug: 29872769
Change-Id: I514cde81dcca4d78238f407251805cced4c0bea1
diff --git a/core/java/android/widget/LinearLayout.java b/core/java/android/widget/LinearLayout.java
index f75b74b..38d7cd4 100644
--- a/core/java/android/widget/LinearLayout.java
+++ b/core/java/android/widget/LinearLayout.java
@@ -890,7 +890,9 @@
remainingWeightSum -= childWeight;
final int childHeight;
- if (lp.height == 0 && (!mAllowInconsistentMeasurement
+ if (mUseLargestChild && heightMode != MeasureSpec.EXACTLY) {
+ childHeight = largestChildHeight;
+ } else if (lp.height == 0 && (!mAllowInconsistentMeasurement
|| heightMode == MeasureSpec.EXACTLY)) {
// This child needs to be laid out from scratch using
// only its share of excess space.
@@ -1272,7 +1274,9 @@
remainingWeightSum -= childWeight;
final int childWidth;
- if (lp.width == 0 && (!mAllowInconsistentMeasurement
+ if (mUseLargestChild && widthMode != MeasureSpec.EXACTLY) {
+ childWidth = largestChildWidth;
+ } else if (lp.width == 0 && (!mAllowInconsistentMeasurement
|| widthMode == MeasureSpec.EXACTLY)) {
// This child needs to be laid out from scratch using
// only its share of excess space.