Android 微调器选择菜单文本在较新设备的白色背景上不可见/为白色
我使用的旋转器如下所示:Android 微调器选择菜单文本在较新设备的白色背景上不可见/为白色,android,android-spinner,Android,Android Spinner,我使用的旋转器如下所示: 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(a
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);
ArrayAdapter adapter=新的ArrayAdapter(mContext、android.R.layout.simple\u spinner\u项、templateTitles);
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
设置适配器(适配器);
我的清单是:
<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>
#000000
问题是,当您单击微调器并显示带有选择项的对话框时,背景为白色,文本不可见(因为它是白色的)。单击并按住选定内容时,文本将显示为黑色
为什么文本不能默认显示为黑色/灰色?我如何克服这个问题?
这个问题似乎只发生在运行API 6或更高版本的设备上。我猜旧的设备正确地显示了颜色
有什么建议吗?
谢谢
编辑:仅当微调器位于对话框上时才会发生这种情况。尝试将样式应用于微调器
<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" />
<Spinner
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/spinnerItemStyle"/>
创建这样的样式
<style name="spinnerItemStyle" parent="@android:style/Widget.Holo.DropDownItem.Spinner">
<item name="android:textColor">#000000</item>
</style>
#000000
应用于您的微调器
<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" />
<Spinner
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/spinnerItemStyle"/>
编辑:-
将父样式更改为
@style/Widget.AppCompat.Spinner
我找到了此问题的解决方案。我需要在代码中这样做
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;
}
};
ArrayAdapter=新的ArrayAdapter(mContext,android.R.layout.simple\u微调器\u项,templateTitles){
@凌驾
公共视图getDropDownView(int位置,视图转换视图,
视图组(父级){
视图=super.getDropDownView(位置、转换视图、父级);
TextView电视=(TextView)视图;
//设置文本颜色
tv.setTextColor(Color.BLACK);
返回视图;
}
};
它工作得不太好!仍然是白色文本。请记住,微调器位于一个对话框上(如果它起作用的话),请看这里的@commonware,也许您知道类似问题的答案?此处传递的mContext是活动上下文