好吧,这让我发疯了。为了给我的应用添加皮肤,我在我的主题中设置了以下内容:
<item name="android:textColor">#FFFFFF</item>
应用中的所有文本都变成白色,除非我在布局xml中手动覆盖它。太好了,太简单了。除了我的上下文菜单选项中的文本(从列表等)也决定变成白色。
这不是很好,因为白色很难阅读。我尝试了各种解决方案,包括搜索如何更改上下文菜单的文本颜色(没有骰子)和在我的主题中创建textAppearance项。最后一个解决方案没有改变我的应用程序中的所有文本字段,这是令人沮丧的。
有什么建议吗?希望我的困境已经清楚了。
在你的styles.xml中尝试重写textViewStyle而不是仅仅所有 textColor属性:
<style name="Theme.Blundell.Light" parent="@android:style/Theme.NoTitleBar">
<item name="android:windowBackground">@drawable/background_light</item>
<item name="android:textViewStyle">@style/Widget.TextView.Black</item>
</style>
<style name="Widget.TextView.Black" parent="@android:style/Widget.TextView">
<item name="android:textColor">#000000</item>
</style>
你甚至可以更进一步,为某个视图重写颜色,比如按钮:
<style name="Widget.Holo.Button" parent="@android:style/Widget.Holo.Button">
<item name="android:textColor">#FFFFFF</item>
</style>
<style name="Theme.Blundell" parent="@android:style/Theme.Holo.NoActionBar">
<item name="android:colorBackground">@android:color/transparent</item>
<item name="android:buttonStyle">@style/Widget.Holo.Button</item>
</style>
如果你有灵感做更多的主题检查Android源代码,这是最好的地方,了解你能做什么和不能做什么!:
https://github.com/android/platform_frameworks_base/tree/master/core/res/res/values使用
parent="Theme.AppCompat.Light.DarkActionBar"