操作栏菜单项文本颜色
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作栏菜单项文本颜色相关的知识,希望对你有一定的参考价值。
如何更改菜单项标题的文本颜色。我试着改变它如下
<style name="Theme.Kanku.ActionBar.TitleTextStyle" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
<item name="android:textColor">@color/white</item>
</style>
但它仅更改操作栏标题文本的颜色,而不更改菜单项文本。
答案
尝试这样的事情:
<style name="ThemeName" parent="@style/Theme.Sherlock.Light">
<item name="actionMenuTextColor">@color/white</item>
<item name="android:actionMenuTextColor">@color/white</item>
</style>
另一答案
您可以以编程方式设置颜色。希望它对你有所帮助。
private static void setMenuTextColor(final Context context, final Toolbar toolbar, final int menuResId, final int colorRes) {
toolbar.post(new Runnable() {
@Override
public void run() {
View settingsMenuItem = toolbar.findViewById(menuResId);
if (settingsMenuItem instanceof TextView) {
if (DEBUG) {
Log.i(TAG, "setMenuTextColor textview");
}
TextView tv = (TextView) settingsMenuItem;
tv.setTextColor(ContextCompat.getColor(context, colorRes));
} else { // you can ignore this branch, because usually there is not the situation
Menu menu = toolbar.getMenu();
MenuItem item = menu.findItem(menuResId);
SpannableString s = new SpannableString(item.getTitle());
s.setSpan(new ForegroundColorSpan(ContextCompat.getColor(context, colorRes)), 0, s.length(), 0);
item.setTitle(s);
}
}
});
}
另一答案
如果使用DarkActionBar,请在style.xml中添加以下两行
- @色/绿 @色/绿
完整代码如下
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="actionMenuTextColor">@color/green</item>
<item name="android:actionMenuTextColor">@color/green</item>
</style>
另一答案
我尝试了几件事,但对我没什么用。最后这就是诀窍:
<style name="your_theme" parent="your_parent">
<item name="android:itemTextAppearance">@style/TextAppearance</item>
</style>
<style name="TextAppearance">
<item name="android:textColor">@android:color/black</item>
</style>
我没有使用Sherlock主题。这适用于Holo.Light.DarkActionBar。
另一答案
在尝试了所有这些并使它们无法工作之后,我以编程方式进行了这样的操作:
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.changeip_card_menu, menu);
for(int i = 0; i < menu.size(); i++) {
MenuItem item = menu.getItem(i);
SpannableString spanString = new SpannableString(menu.getItem(i).getTitle().toString());
spanString.setSpan(new ForegroundColorSpan(Color.WHITE), 0, spanString.length(), 0); //fix the color to white
item.setTitle(spanString);
}
return true;
}
这将每次动态工作。在这种情况下,文本颜色变为白色。 Simpy,将Color.WHITE更改为Color.whatever-color-您想要将其更改为您想要的任何颜色。
另一答案
要更新菜单项文本颜色,您需要在themes.xml中进行更改。以下答案适用于sherlock.actionbar。在themes.xml文件中添加以下行:
<style name="Theme.Mytheme" parent="@style/Theme.Sherlock">
<item name="actionMenuTextColor">@color/mycolor</item>
<item name="android:actionMenuTextColor">@color/mycolor</item>
</style>
另一答案
这对我有用:
<style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar">
<item name="android:textAppearanceLargePopupMenu">@style/MyOverflowItemCollor</item>
</style>
<style name="MyOverflowItemCollor" parent="android:TextAppearance.Holo.Widget.PopupMenu.Large">
<item name="android:textColor">#ffffff</item>
</style>
另一答案
如果AppTheme是android:Theme.Holo.Light.DarkActionBar,那么你需要设置自定义actionBarWidgetTheme以便更改动作菜单样式。像这样:
<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
<item name="android:actionBarWidgetTheme">@style/ActionBarWidget</item>
<item name="android:actionMenuTextColor">@color/{custom_menu_item_text_color}</item>
</style>
<style name="MenuItemText">
<item name="android:textColor">@color/{custom_menu_item_text_color}</item>
</style>
<style name="ActionBarWidget" parent="@android:style/Theme.Holo">
<item name="android:itemTextAppearance">@style/MenuItemText</item>
</style>
另一答案
请使用下面的代码
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorWhite</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorPrimaryDark</item>
<item name="android:actionMenuTextColor">@color/colorWhite</item>
</style>
另一答案
您可以通过以下行简单地更改操作项颜色
<item name="android:actionMenuTextColor">@color/selected_text_color</item>
你可以这样申请。
<style name="your_theme" parent="your_parent">
<item name="android:actionMenuTextColor">@color/selected_text_color</item>
</style>
就我而言
<style name="MyTheme" parent="@android:style/Theme.Holo.Light">
<item name="android:actionMenuTextColor">@color/selected_text_color</item>
</style>
另一答案
将以下代码行添加到style.xml文件中,将选项菜单文本颜色更改为黑色:
<style name="optionMenuTextApearance" parent="@android:style/TextAppearance.Widget.IconMenu.Item">
<item name="android:textColor">@color/colorBlack</item>
</style>
然后将这一行代码添加到主题中以更改选项菜单文本的颜色:
<item name="android:itemTextAppearance">@style/optionMenuTextApearance</item>
这对我有用,谢谢。
以上是关于操作栏菜单项文本颜色的主要内容,如果未能解决你的问题,请参考以下文章