OSDN Git Service

Fixed a bug that the more card was gone
authorSelim Cinek <cinek@google.com>
Mon, 18 May 2015 22:16:08 +0000 (15:16 -0700)
committerSelim Cinek <cinek@google.com>
Mon, 18 May 2015 22:58:16 +0000 (22:58 +0000)
Bug: 21155295
Change-Id: I7e332df71980b5a553e66b928c3e994849470ab3

packages/SystemUI/src/com/android/systemui/statusbar/ExpandableView.java

index 17e2cb5..3feec9e 100644 (file)
@@ -59,6 +59,12 @@ public abstract class ExpandableView extends FrameLayout {
     @Override
     protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
         int ownMaxHeight = mMaxViewHeight;
+        int heightMode = MeasureSpec.getMode(heightMeasureSpec);
+        boolean hasFixedHeight = heightMode == MeasureSpec.EXACTLY;
+        if (hasFixedHeight) {
+            // We have a height set in our layout, so we want to be at most as big as given
+            ownMaxHeight = Math.min(MeasureSpec.getSize(heightMeasureSpec), ownMaxHeight);
+        }
         int newHeightSpec = MeasureSpec.makeMeasureSpec(ownMaxHeight, MeasureSpec.AT_MOST);
         int maxChildHeight = 0;
         int childCount = getChildCount();
@@ -85,7 +91,7 @@ public abstract class ExpandableView extends FrameLayout {
                 mMatchParentViews.add(child);
             }
         }
-        int ownHeight = Math.min(ownMaxHeight, maxChildHeight);
+        int ownHeight = hasFixedHeight ? ownMaxHeight : Math.min(ownMaxHeight, maxChildHeight);
         newHeightSpec = MeasureSpec.makeMeasureSpec(ownHeight, MeasureSpec.EXACTLY);
         for (View child : mMatchParentViews) {
             child.measure(getChildMeasureSpec(