我正在使用这样的微调器:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(mContext, android.R.layout.simple_spinner_item, templateTitles);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mySpinner.setAdapter(adapter);
我的清单是:
<application
android:name="MyApplication"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:theme="@style/AppTheme" >
样式在哪里:
<style name="AppTheme" parent="android:Theme.WithActionBar">
<item name="android:textColor">#000000</item>
</style>
问题是,当您单击微调器并显示带有选择项的对话框时,背景是白色的,文本是不可见的(因为它是白色的(。单击并按住所选内容时,文本将在变为黑色时显示。
为什么文本不默认为黑色/灰色来显示?如何克服此问题?此问题似乎仅在运行 API 6 或更高版本的设备上发生。我猜较旧的设备正确显示了颜色。
有什么建议吗?谢谢。
编辑:仅当微调器位于对话框上时,才会发生这种情况。
创建这样的样式
<style name="spinnerItemStyle" parent="@android:style/Widget.Holo.DropDownItem.Spinner">
<item name="android:textColor">#000000</item>
</style>
应用于微调器
<Spinner
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/spinnerItemStyle"/>
编辑:-
将父样式更改为@style/Widget.AppCompat.Spinner
尝试将样式应用于微调器
<Spinner
android:id="@+id/spinner"
style="@android:style/Widget.Holo.Light.Spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:spinnerMode="dropdown" />
我找到了这个问题的解决方案。我需要在代码中执行此操作
ArrayAdapter<String> adapter = new ArrayAdapter<String>(mContext, android.R.layout.simple_spinner_item, templateTitles){
@Override
public View getDropDownView(int position, View convertView,
ViewGroup parent) {
View view = super.getDropDownView(position, convertView, parent);
TextView tv = (TextView) view;
// Set the Text color
tv.setTextColor(Color.BLACK);
return view;
}
};