OSDN Git Service

Ensure child is attached before performing measure/layout in Spinner
authorAlan Viverette <alanv@google.com>
Mon, 22 Jun 2015 22:25:55 +0000 (15:25 -0700)
committerAlan Viverette <alanv@google.com>
Mon, 22 Jun 2015 22:25:55 +0000 (15:25 -0700)
Bug: 21614663
Change-Id: Id84a720fac7050d312eb2eb6f12621217c4f8d0f

core/java/android/widget/Spinner.java

index fdabe91..6abd129 100644 (file)
@@ -711,9 +711,7 @@ public class Spinner extends AbsSpinner implements OnClickListener {
             lp = generateDefaultLayoutParams();
         }
 
-        if (addChild) {
-            addViewInLayout(child, 0, lp);
-        }
+        addViewInLayout(child, 0, lp);
 
         child.setSelected(hasFocus());
         if (mDisableChildrenWhenDisabled) {
@@ -743,6 +741,10 @@ public class Spinner extends AbsSpinner implements OnClickListener {
         childRight = childLeft + width;
 
         child.layout(childLeft, childTop, childRight, childBottom);
+
+        if (!addChild) {
+            removeViewInLayout(child);
+        }
     }
 
     @Override