尝试使用android-support-v7-appcompat设置操作栏文本颜色时遇到了很多麻烦。我能够将选择器颜色从默认颜色更改为浅灰色,但是当我选择某些内容时,文本颜色也会发生变化。我希望用户进行选择时文本颜色保持黑色。有任何想法吗?谢谢!
答案 0 :(得分:7)
在我的themes.xml中,这就是诀窍
<style name="AppTheme.AppCompat.Light" parent="@style/Theme.AppCompat.Light">
<item name="android:itemTextAppearance">@style/MenuTextAppearance</item>
</style>
<style name="MenuTextAppearance">
<item name="android:textColor">@android:color/black</item>
</style>
此外,我发现您可以使用spannable字符串以编程方式自定义menuItems的文本颜色。这导致应用程序在使用appcompay-v7时崩溃,但其他人已经成功使用了Sherlock,Holo等。示例:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.your_menu, menu);
int positionOfMenuItem = 0; // or whatever...
MenuItem item = menu.getItem(positionOfMenuItem);
SpannableString s = new SpannableString("My red MenuItem");
s.setSpan(new ForegroundColorSpan(Color.RED), 0, s.length(), 0);
item.setTitle(s);
}
https://stackoverflow.com/a/19008593/2820963
如果您希望不同的菜单项具有不同的颜色,这将是很好的。
答案 1 :(得分:0)
我相信选择项目有一种样式,因此您需要明确定义选择项目时的文本颜色,或者您的应用程序将恢复为默认的文本颜色。该属性应该类似于android:textColorHighlight