diff options
| author | Alan Viverette <alanv@google.com> | 2015-07-22 20:35:40 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-07-22 20:35:40 +0000 |
| commit | 9478bf0e6f9618b8a5b844deaf548fc5ad1ff024 (patch) | |
| tree | f1aedcc66d832ba9acd12403210e7a9a8fe45a68 /core/java | |
| parent | 5ef70b02ead0a1e164370fefaff27bfd1ce0d492 (diff) | |
| parent | 5b39ec8b404879225e9ef31267222fcdcbb8118c (diff) | |
| download | frameworks_base-9478bf0e6f9618b8a5b844deaf548fc5ad1ff024.zip frameworks_base-9478bf0e6f9618b8a5b844deaf548fc5ad1ff024.tar.gz frameworks_base-9478bf0e6f9618b8a5b844deaf548fc5ad1ff024.tar.bz2 | |
Merge "Fix handling of RelativeLayout measurement using UNSPECIFIED spec" into mnc-dev
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/widget/RelativeLayout.java | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/core/java/android/widget/RelativeLayout.java b/core/java/android/widget/RelativeLayout.java index dac02fa..6a561e6 100644 --- a/core/java/android/widget/RelativeLayout.java +++ b/core/java/android/widget/RelativeLayout.java @@ -731,7 +731,8 @@ public class RelativeLayout extends ViewGroup { // Negative values in a mySize value in RelativeLayout // measurement is code for, "we got an unspecified mode in the // RelativeLayout's measure spec." - if (mySize < 0 && !mAllowBrokenMeasureSpecs) { + final boolean isUnspecified = mySize < 0; + if (isUnspecified && !mAllowBrokenMeasureSpecs) { if (childStart != VALUE_NOT_SET && childEnd != VALUE_NOT_SET) { // Constraints fixed both edges, so child has an exact size. childSpecSize = Math.max(0, childEnd - childStart); @@ -767,7 +768,7 @@ public class RelativeLayout extends ViewGroup { if (childStart != VALUE_NOT_SET && childEnd != VALUE_NOT_SET) { // Constraints fixed both edges, so child must be an exact size. - childSpecMode = MeasureSpec.EXACTLY; + childSpecMode = isUnspecified ? MeasureSpec.UNSPECIFIED : MeasureSpec.EXACTLY; childSpecSize = Math.max(0, maxAvailable); } else { if (childSize >= 0) { @@ -784,7 +785,7 @@ public class RelativeLayout extends ViewGroup { } else if (childSize == LayoutParams.MATCH_PARENT) { // Child wanted to be as big as possible. Give all available // space. - childSpecMode = MeasureSpec.EXACTLY; + childSpecMode = isUnspecified ? MeasureSpec.UNSPECIFIED : MeasureSpec.EXACTLY; childSpecSize = Math.max(0, maxAvailable); } else if (childSize == LayoutParams.WRAP_CONTENT) { // Child wants to wrap content. Use AT_MOST to communicate |
