我正在编写一个需要以下两件事的应用程序:
TextView
s中)需要是一种颜色(白色,在这种情况下 - 深色背景)Spinner
上的文字需要是不同的颜色(黑色,因为白色太难阅读)我使用了在清单中的应用程序级别应用的主题来执行上面的第一项。
<resources>
<style name="GlobalTheme" parent="@android:style/Theme.Black.NoTitleBar.Fullscreen">
<item name="android:textColor">#FFFFFF</item>
</style>
</resources>
工作得很好。除此之外,它还使旋转器上的文本变白,难以阅读。
好的,所以我希望微调器颜色仍为黑色,但 else 的所有内容都是白色。
我发现this question显示了如何设置Spinner文本颜色,并且它可以工作,但仅当我还没有设置全局textColor时。
所以以下内容不起作用:
<resources>
<style name="GlobalTheme" parent="@android:style/Theme.Black.NoTitleBar.Fullscreen">
<item name="android:textColor">#FFFFFF</item>
<item name="android:spinnerItemStyle">@style/GlobalThemeSpinnerItem</item>
</style>
<style name="GlobalThemeSpinnerItem" parent="android:Widget.TextView.SpinnerItem">
<item name="android:textAppearance">@style/GlobalThemeTextAppearanceSpinnerItem</item>
</style>
<style name="GlobalThemeTextAppearanceSpinnerItem" parent="android:TextAppearance.Widget.TextView.SpinnerItem">
<item name="android:textColor">#000000</item>
</style>
</resources>
我想我希望这会像CSS一样,事情会逐渐降级(即“所有文字都应该是白色的,除了在旋转器中”)。如果我删除主题中的android:textColor
行,则微调器颜色技巧可以正常工作。
看起来SpinnerItem
来自TextView
所以我尝试提出类似于textViewStyle
分隔的spinnerItemStyle
类型分隔,但没有运气好的话。
与大多数提出此问题的人不同,我希望尽可能地将其保留在XML中。有谁知道我做错了什么?
答案 0 :(得分:1)
试试这个:
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="GlobalTheme" parent="@android:style/Theme.Black.NoTitleBar.Fullscreen">
<item name="android:spinnerItemStyle">@style/GlobalThemeSpinnerItem</item>
<item name="android:textViewStyle">@style/GlobalThemeTextViewItem</item>
</style>
<style name="GlobalThemeTextViewItem" parent="android:Widget.TextView">
<item name="android:textAppearance">@style/GlobalThemeTextAppearanceTextViewItem</item>
</style>
<style name="GlobalThemeTextAppearanceTextViewItem" parent="android:TextAppearance.Widget.TextView">
<item name="android:textColor">#FFFFFF</item>
</style>
<style name="GlobalThemeSpinnerItem" parent="android:Widget.TextView.SpinnerItem">
<item name="android:textAppearance">@style/GlobalThemeTextAppearanceSpinnerItem</item>
</style>
<style name="GlobalThemeTextAppearanceSpinnerItem" parent="android:TextAppearance.Widget.TextView.SpinnerItem">
<item name="android:textColor">#000000</item>
</style>
这会使TextViews中的文本变白,而Spinners中的文本变黑。