summaryrefslogtreecommitdiffstats
path: root/core/java
diff options
context:
space:
mode:
authorAlan Viverette <alanv@google.com>2015-07-22 20:35:40 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-07-22 20:35:40 +0000
commit9478bf0e6f9618b8a5b844deaf548fc5ad1ff024 (patch)
treef1aedcc66d832ba9acd12403210e7a9a8fe45a68 /core/java
parent5ef70b02ead0a1e164370fefaff27bfd1ce0d492 (diff)
parent5b39ec8b404879225e9ef31267222fcdcbb8118c (diff)
downloadframeworks_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.java7
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