summaryrefslogtreecommitdiff
path: root/core/java/android/widget/RelativeLayout.java
diff options
context:
space:
mode:
authorRomain Guy <romainguy@android.com>2009-06-24 14:37:03 -0700
committerRomain Guy <romainguy@android.com>2009-06-24 14:38:34 -0700
commit956070383945db5f842ec05e507fd0233705738c (patch)
tree99f568567125dcce1b2e62e4829cf6edff016798 /core/java/android/widget/RelativeLayout.java
parentae7c980e8e5f5e8c78536f0b37fca50d1a7966ca (diff)
Reverse the order in which RelativeLayout measures and positions children.
This fixes RelativeLayouts with height=wrap_content.
Diffstat (limited to 'core/java/android/widget/RelativeLayout.java')
-rw-r--r--core/java/android/widget/RelativeLayout.java26
1 files changed, 14 insertions, 12 deletions
diff --git a/core/java/android/widget/RelativeLayout.java b/core/java/android/widget/RelativeLayout.java
index 1f63e117a947..955475e401ff 100644
--- a/core/java/android/widget/RelativeLayout.java
+++ b/core/java/android/widget/RelativeLayout.java
@@ -349,9 +349,10 @@ public class RelativeLayout extends ViewGroup {
View child = views[i];
if (child.getVisibility() != GONE) {
LayoutParams params = (LayoutParams) child.getLayoutParams();
- applyVerticalSizeRules(params, myHeight);
- measureChildVertical(child, params, myHeight);
- positionChildVertical(child, params, myHeight);
+
+ applyHorizontalSizeRules(params, myWidth);
+ measureChildHorizontal(child, params, myWidth);
+ positionChildHorizontal(child, params, myWidth);
}
}
@@ -361,9 +362,10 @@ public class RelativeLayout extends ViewGroup {
View child = views[i];
if (child.getVisibility() != GONE) {
LayoutParams params = (LayoutParams) child.getLayoutParams();
- applyHorizontalSizeRules(params, myWidth);
+
+ applyVerticalSizeRules(params, myHeight);
measureChild(child, params, myWidth, myHeight);
- positionChildHorizontal(child, params, myWidth);
+ positionChildVertical(child, params, myHeight);
if (widthMode != MeasureSpec.EXACTLY) {
width = Math.max(width, params.mRight);
@@ -508,13 +510,13 @@ public class RelativeLayout extends ViewGroup {
child.measure(childWidthMeasureSpec, childHeightMeasureSpec);
}
- private void measureChildVertical(View child, LayoutParams params, int myHeight) {
- int childWidthMeasureSpec = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED);
- int childHeightMeasureSpec = getChildMeasureSpec(params.mTop,
- params.mBottom, params.height,
- params.topMargin, params.bottomMargin,
- mPaddingTop, mPaddingBottom,
- myHeight);
+ private void measureChildHorizontal(View child, LayoutParams params, int myWidth) {
+ int childWidthMeasureSpec = getChildMeasureSpec(params.mLeft,
+ params.mRight, params.width,
+ params.leftMargin, params.rightMargin,
+ mPaddingLeft, mPaddingRight,
+ myWidth);
+ int childHeightMeasureSpec = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED);
child.measure(childWidthMeasureSpec, childHeightMeasureSpec);
}