51

如何更改菜单项标题的文本颜色。我试图改变它如下

<style name="Theme.Kanku.ActionBar.TitleTextStyle" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
    <item name="android:textColor">@color/white</item>
</style>

但它仅更改操作栏标题文本的颜色,而不更改菜单项文本的颜色。

4

11 回答 11

115

尝试这样的事情:

<style name="ThemeName" parent="@style/Theme.Sherlock.Light">
    <item name="actionMenuTextColor">@color/white</item>
    <item name="android:actionMenuTextColor">@color/white</item>
</style>
于 2013-08-02T10:51:46.067 回答
106

我尝试了几件事,但对我没有任何帮助。最后这成功了:

<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。

于 2013-10-06T18:58:28.360 回答
14

在尝试了所有这些并让它们不起作用之后,我以这样的方式进行了编程:

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;
}

这将每次动态工作。在这种情况下,文本颜色变为白色。简单,将 Color.WHITE 更改为 Color.whatever-color-you-want 将其更改为您想要的任何颜色。

于 2014-09-17T22:19:34.140 回答
7

要更新菜单项文本颜色,您需要在 theme.xml 中进行更改。以下答案适用于 sherlock.actionbar。在您的 theme.xml 文件中添加以下行:

<style name="Theme.Mytheme" parent="@style/Theme.Sherlock">
    <item name="actionMenuTextColor">@color/mycolor</item>     
    <item name="android:actionMenuTextColor">@color/mycolor</item>
</style> 
于 2014-09-22T07:43:30.337 回答
5

这对我有用:

<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> 
于 2014-11-13T15:31:50.570 回答
4

如果 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>
于 2014-08-16T14:38:30.493 回答
1

请使用下面的代码

<!-- 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>

于 2016-11-22T15:38:23.050 回答
1

将以下代码行添加到您的样式.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>

它对我有用,谢谢。

于 2017-02-14T11:24:55.313 回答
1

如果您使用 DarkActionBar 在 style.xml 中添加以下两行

  1. @颜色/绿色
    1. @颜色/绿色

完整代码如下

<!-- 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>

于 2018-05-28T11:44:03.663 回答
0

您可以通过以下行更改操作项颜色

<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>
于 2016-03-28T06:16:21.050 回答
-1

您可以以编程方式设置颜色。希望对您有所帮助。

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);
            }

        }
    });
}
于 2017-05-13T10:50:39.867 回答