2

尝试使用android-support-v7-appcompat设置操作栏文本颜色时遇到了很多麻烦。我能够将选择器颜色从默认颜色更改为浅灰色,但现在当我选择文本颜色也会发生变化时。我希望用户进行选择时文本颜色保持黑色。有任何想法吗?谢谢!更改操作栏菜单为appcompat选择的文本颜色

Text Color needs to stay black

回答

7

,这并获得成功

<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字符串以编程方式自定义的菜单项的文本颜色。这引起了应用程序中使用appcompay-V7但是别人已经成功与福尔摩斯,全息等。例如,当崩溃:

@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

如果你想不同的菜单项有不同,这将是巨大的颜色。

0

我相信这是对选择项的风格,所以你需要明确定义,当一个项目被选中或您的应用程序将恢复为默认的文字颜色的文本颜色。该属性应该是这样的,我的themes.xml android:textColorHighlight

+0

感谢您的回应,但我找到了不同的解决方案。 – John