我觉得我错过了一些明显的东西,但我有这个名为“voices_spinner_white_text_color_states”的 ColorStateList,见下文:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_enabled="false"
android:color="@color/color_white_light_alpha" />
<item
android:state_enabled="true"
android:color="@color/color_white" />
</selector>
我在我的 SpinnerAdapter 中这样引用:
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
View item;
if( convertView != null ){
item = (GenericSpinnerItem)convertView;
} else {
item = new GenericSpinnerItem( context, false );
((GenericSpinnerItem)item ).valueText.setTextColor( context.getResources().getColorStateList(R.drawable.voices_spinner_white_text_color_states) );
AbsListView.LayoutParams layoutParams = new AbsListView.LayoutParams( LayoutParams.MATCH_PARENT, M.dp(30));
item.setLayoutParams(layoutParams);
}
( (GenericSpinnerItem)item ).setup(values.get(position));
return item;
}
我期待当我打电话时
spinner.setEnabled( false )
微调器的文本将显示禁用状态。它很好地显示了启用状态,但是当我将微调器的启用状态更改为 false 时,它根本不显示禁用状态。
事实上,如果我将“android:state_enabled="false”更改为“android:state_enabled=" true ”,那么为了测试,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_enabled="true"
android:color="@color/color_white_light_alpha" />
<item
android:state_enabled="true"
android:color="@color/color_white" />
</selector>
“禁用状态”出现。不知道我做错了什么。