更改holo微调文本颜色

Dav*_*Sav 8 android android-layout android-spinner android-styles

我在Holo主题对话框中有一个微调器,我正在尝试更改文本颜色,因为它很难阅读:

对话框微调文本颜色

我查看了android styles.xml以及许多其他答案,并且相信我正确地设置了自定义样式; 但它只是没有被捡起来.

这是微调器所在的对话框布局文件的摘录:

<Spinner
        android:id="@+id/spn_Type"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:entries="@array/dose_type_options"
        style="@style/DialogSpinner" />
Run Code Online (Sandbox Code Playgroud)

这些是values-v14文件夹中styles.xml中的相关条目:

<style name="DialogSpinner" parent="@android:style/Widget.Holo.Spinner">
        <item name="android:spinnerItemStyle">@style/MySpinnerItem</item>
</style>

<style name="MySpinnerItem" parent="android:Widget.Holo.TextView.SpinnerItem">
    <item name="android:textAppearance">@style/MyTextAppearanceSpinnerItem</item>
</style>

<style name="MyTextAppearanceSpinnerItem" parent="android:TextAppearance.Holo.Widget.TextView.SpinnerItem">
    <item name="android:textColor">#FFF</item>
</style>
Run Code Online (Sandbox Code Playgroud)

通过使用以下对话框本身被强制为Holo黑暗主题:

<style name="FibroDialog" parent="@android:style/Theme.Holo.Dialog">

</style>
Run Code Online (Sandbox Code Playgroud)

任何人都可以确定为什么微调文本不是白色的?

我看过其他解决方案,建议改变代码中的颜色,但这个应用程序支持2.3.*向上,所以对于那些非全息版本黑色文本很好,因此尝试按样式进行.

谢谢

使用Woda下面的答案更新

微调器的初始值的文本颜色现在是白色的,这对于突出显示用户有一个微调器非常重要:

对话框微调文本颜色2

但是可选项目的文本颜色仍然是黑色.我想这不是一个大问题,至少通过将初始文本变为白色来确认微调器的存在.但我很想知道为什么这些物品仍然是黑色的,以及如何将它们变成白色.

Wod*_*oda 5

你试过接受SpinnerItemStyle到你的主题吗?因此,您应用中的所有Spinners都具有相同的风格.我正在使用它,它的工作原理如下:

theme.xml:

<style name="exampleTheme" parent="android:Theme.Holo.Light">
    <item name="android:spinnerItemStyle">@style/SpinnerItem_example</item>
    ...
</style>
Run Code Online (Sandbox Code Playgroud)

style.xml:

<style name="SpinnerItem_example" parent="android:TextAppearance.Widget.TextView.SpinnerItem">
        <item name="android:textColor">#000000</item>
</style>
Run Code Online (Sandbox Code Playgroud)

更新: 深入了解styles.xml给我带来了这个:

<style name="Widget.DropDownItem.Spinner">
        <item name="android:checkMark">?android:attr/listChoiceIndicatorSingle</item>
</style>

<style name="Widget.DropDownItem">
        <item name="android:textAppearance">@style/TextAppearance.Widget.DropDownItem</item>
        <item name="android:paddingStart">@dimen/dropdownitem_text_padding_left</item>
        <item name="android:paddingEnd">@dimen/dropdownitem_text_padding_right</item>
        <item name="android:gravity">center_vertical</item>
</style>
Run Code Online (Sandbox Code Playgroud)

所以你可能需要自定义Widget.DropDownItem并在你的主题中接受它.

...
<item name="dropDownItemStyle">@android:style/Widget.DropDownItem</item>
...
Run Code Online (Sandbox Code Playgroud)

为了自定义我的应用程序,以下两个链接帮助我理解了不同视图的结构.这两个文件是android源代码的一部分.也许它可以帮助你.