Merge "Fix bug 5544103 - Spinner text doesn't look dimmed when disabled" into ics-mr1

This commit is contained in:
Adam Powell
2011-11-08 10:06:00 -08:00
committed by Android (Google) Code Review
3 changed files with 22 additions and 0 deletions

View File

@@ -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,

View File

@@ -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">

View File

@@ -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">