微调器选择菜单文本是在新设备上的白色背景上看不见/白色

时间:2017-04-04 03:53:09

标签: 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(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或更高版本的设备上发生。我猜旧设备显示颜色正确。

有什么建议吗? 感谢。

编辑:仅当微调器在对话框上时才会发生。

3 个答案:

答案 0 :(得分:1)

像这样创建样式

<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

答案 1 :(得分:0)

尝试将样式应用于微调器

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

答案 2 :(得分:0)

我找到了解决这个问题的方法。我需要在代码中执行此操作

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;
            }
        };