diff options
| author | Adam Powell <adamp@google.com> | 2011-11-08 10:06:00 -0800 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-11-08 10:06:00 -0800 |
| commit | 8689afbd63db3b1af6058709da843ea9d6433b21 (patch) | |
| tree | 89299c13da8c441e29aee2d4b4753b12bb549afc /core | |
| parent | b9b08257370d244b4bccc4e243dda3c4daf4b0af (diff) | |
| parent | 42b7e99b11a5ab1cbc0beebe0b15e46bdf462dff (diff) | |
| download | frameworks_base-8689afbd63db3b1af6058709da843ea9d6433b21.zip frameworks_base-8689afbd63db3b1af6058709da843ea9d6433b21.tar.gz frameworks_base-8689afbd63db3b1af6058709da843ea9d6433b21.tar.bz2 | |
Merge "Fix bug 5544103 - Spinner text doesn't look dimmed when disabled" into ics-mr1
Diffstat (limited to 'core')
| -rw-r--r-- | core/java/android/widget/Spinner.java | 18 | ||||
| -rwxr-xr-x | core/res/res/values/attrs.xml | 3 | ||||
| -rw-r--r-- | core/res/res/values/styles.xml | 1 |
3 files changed, 22 insertions, 0 deletions
diff --git a/core/java/android/widget/Spinner.java b/core/java/android/widget/Spinner.java index 27d44bf..ec3790e 100644 --- a/core/java/android/widget/Spinner.java +++ b/core/java/android/widget/Spinner.java @@ -68,6 +68,7 @@ public class Spinner extends AbsSpinner implements OnClickListener { int mDropDownWidth; private int mGravity; + private boolean mDisableChildrenWhenDisabled; private Rect mTempRect = new Rect(); @@ -186,6 +187,9 @@ public class Spinner extends AbsSpinner implements OnClickListener { mPopup.setPromptText(a.getString(com.android.internal.R.styleable.Spinner_prompt)); + mDisableChildrenWhenDisabled = a.getBoolean( + com.android.internal.R.styleable.Spinner_disableChildrenWhenDisabled, false); + a.recycle(); // Base constructor can call setAdapter before we initialize mPopup. @@ -196,6 +200,17 @@ public class Spinner extends AbsSpinner implements OnClickListener { } } + @Override + public void setEnabled(boolean enabled) { + super.setEnabled(enabled); + if (mDisableChildrenWhenDisabled) { + final int count = getChildCount(); + for (int i = 0; i < count; i++) { + getChildAt(i).setEnabled(enabled); + } + } + } + /** * Describes how the selected item view is positioned. Currently only the horizontal component * is used. The default is determined by the current theme. @@ -398,6 +413,9 @@ public class Spinner extends AbsSpinner implements OnClickListener { addViewInLayout(child, 0, lp); child.setSelected(hasFocus()); + if (mDisableChildrenWhenDisabled) { + child.setEnabled(isEnabled()); + } // Get measure specs int childHeightSpec = ViewGroup.getChildMeasureSpec(mHeightMeasureSpec, diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml index a40e24c..d0ab8b1 100755 --- a/core/res/res/values/attrs.xml +++ b/core/res/res/values/attrs.xml @@ -3331,6 +3331,9 @@ <attr name="popupPromptView" format="reference" /> <!-- Gravity setting for positioning the currently selected item. --> <attr name="gravity" /> + <!-- Whether this spinner should mark child views as enabled/disabled when + the spinner itself is enabled/disabled. --> + <attr name="disableChildrenWhenDisabled" format="boolean" /> </declare-styleable> <declare-styleable name="DatePicker"> diff --git a/core/res/res/values/styles.xml b/core/res/res/values/styles.xml index 949f01f..73e1a7c 100644 --- a/core/res/res/values/styles.xml +++ b/core/res/res/values/styles.xml @@ -1798,6 +1798,7 @@ please see styles_device_defaults.xml. <item name="android:dropDownWidth">wrap_content</item> <item name="android:popupPromptView">@android:layout/simple_dropdown_hint</item> <item name="android:gravity">left|center_vertical</item> + <item name="android:disableChildrenWhenDisabled">true</item> </style> <style name="Widget.Holo.Spinner.DropDown"> |
