From a174d7a0d5475dbae2b48f7359abf1637a882896 Mon Sep 17 00:00:00 2001 From: Romain Guy Date: Fri, 7 Jan 2011 13:27:39 -0800 Subject: [PATCH] Don't match wrap_content/match_parent children with child count = 1. Bug #3328711 Change-Id: Ic131f2feecbeec4a7250d47193c9794aa70d22ee --- core/java/android/widget/FrameLayout.java | 6 +++--- core/java/android/widget/HorizontalScrollView.java | 2 ++ core/java/android/widget/ScrollView.java | 2 ++ 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/core/java/android/widget/FrameLayout.java b/core/java/android/widget/FrameLayout.java index 2bc63019fcc60..8c7205e266185 100644 --- a/core/java/android/widget/FrameLayout.java +++ b/core/java/android/widget/FrameLayout.java @@ -297,15 +297,15 @@ public class FrameLayout extends ViewGroup { resolveSizeAndState(maxHeight, heightMeasureSpec, childState << MEASURED_HEIGHT_STATE_SHIFT)); - if (mMatchParentChildren.size() > 0) { - count = mMatchParentChildren.size(); + count = mMatchParentChildren.size(); + if (count > 1) { for (int i = 0; i < count; i++) { final View child = mMatchParentChildren.get(i); final MarginLayoutParams lp = (MarginLayoutParams) child.getLayoutParams(); int childWidthMeasureSpec; int childHeightMeasureSpec; - + if (lp.width == LayoutParams.MATCH_PARENT) { childWidthMeasureSpec = MeasureSpec.makeMeasureSpec(getMeasuredWidth() - mPaddingLeft - mPaddingRight - lp.leftMargin - lp.rightMargin, diff --git a/core/java/android/widget/HorizontalScrollView.java b/core/java/android/widget/HorizontalScrollView.java index 50867b9514d07..f6b1dbc99b400 100644 --- a/core/java/android/widget/HorizontalScrollView.java +++ b/core/java/android/widget/HorizontalScrollView.java @@ -16,6 +16,7 @@ package android.widget; +import android.view.ViewDebug; import com.android.internal.R; import android.util.AttributeSet; @@ -115,6 +116,7 @@ public class HorizontalScrollView extends FrameLayout { * When set to true, the scroll view measure its child to make it fill the currently * visible area. */ + @ViewDebug.ExportedProperty(category = "layout") private boolean mFillViewport; /** diff --git a/core/java/android/widget/ScrollView.java b/core/java/android/widget/ScrollView.java index 02f5a8b1dffc4..8558c70e40de8 100644 --- a/core/java/android/widget/ScrollView.java +++ b/core/java/android/widget/ScrollView.java @@ -16,6 +16,7 @@ package android.widget; +import android.view.ViewDebug; import com.android.internal.R; import android.content.Context; @@ -110,6 +111,7 @@ public class ScrollView extends FrameLayout { * When set to true, the scroll view measure its child to make it fill the currently * visible area. */ + @ViewDebug.ExportedProperty(category = "layout") private boolean mFillViewport; /**