am 9b4917a6: am be01800d: am 9478bf0e: Merge "Fix handling of RelativeLayout measurement using UNSPECIFIED spec" into mnc-dev
* commit '9b4917a6f8ccd3a9faac08859d263f58e33f6357': Fix handling of RelativeLayout measurement using UNSPECIFIED spec
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user