我正在编写一个应用程序,需要以下两个功能:
TextView
中的一般文本需要是一个颜色(在这种情况下是白色 - 暗背景)Spinner
上的文本需要是不同的颜色(黑色,因为白色太难读了)
我使用了一个主题,在清单文件中应用到应用程序级别上,以实现上述第一项。
<resources>
<style name="GlobalTheme" parent="@android:style/Theme.Black.NoTitleBar.Fullscreen">
<item name="android:textColor">#FFFFFF</item>
</style>
</resources>
工作得很好。但它也使得旋转器上的文本变成白色,很难阅读。
好的,所以我希望旋转器颜色仍然是黑色,但其他所有东西都是白色。
我找到了这个问题,它显示了如何设置旋转器文本颜色,并且它有效,但只有当我没有同时设置全局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
,所以我尝试设计类似于spinnerItemStyle
分离的textViewStyle
类型分离,但没有成功。与大多数询问此问题的人不同,我希望尽可能地将其保留在XML中。有人知道我做错了什么吗?