将应用程序主题textColor设置为白色会导致上下文菜单项文本为白色(不可见)

时间:2011-04-21 20:51:06

标签: android themes contextmenu textcolor

好的,这让我疯狂。为我的应用程序设置皮肤,我在主题中设置了以下内容:

<item name="android:textColor">#FFFFFF</item>

除非我在布局xmls中手动覆盖它,否则应用程序中的所有文本都会变为白色。很棒,很好,很容易。除了上下文菜单(关闭列表等)的菜单选项中的文本也决定变白。

这不是很好,因为白色很难读白。我尝试了各种解决方案,包括搜索如何更改上下文菜单(无骰子)的文本颜色以及在我的主题中创建textAppearance项目。最后一个解决方案没有改变我的应用程序中的所有文本字段,这令人沮丧。

那么,有什么建议吗?希望我的困境很清楚。

2 个答案:

答案 0 :(得分:2)

在styles.xml中尝试覆盖textViewStyle而不是 ALL 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

答案 1 :(得分:0)

使用此:

parent="Theme.AppCompat.Light.DarkActionBar"