Android菜单文本颜色更改

Bha*_*mar 3 android

我正在尝试“材质”主题,并更改“菜单”和项目的背景和文本颜色。使用以下样式,可以在工具栏上正常工作,但是尽管背景发生了变化,但按下设备菜单按钮时弹出的菜单显示的文本颜色没有变化。请帮助更改文本颜色,如前所述。 在此处输入图片说明

<resources>

<style name="MyMaterialTheme" parent="MyMaterialTheme.Base">

</style>

<style name="MyMaterialTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:textColorPrimary">@color/accent</item>
    <item name="android:textColorSecondary">@color/accent</item>
    <item name="android:textColorHint">@color/accent</item>

    <!-- Menu Items -->
    <item name="android:textColor">@color/accent</item>
    <item name="android:actionMenuTextColor">@color/accent</item>
    <item name="actionMenuTextColor">@color/accent</item>
    <item name="actionBarStyle">@style/MyActionBar</item>
    <item name="android:itemBackground">@color/colorPrimaryDark</item>
    <item name="android:itemTextAppearance">@style/MyActionBar.MenuTextStyle</item>

    <!-- Menu Items -->
</style>



<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
    <item name="background">@color/colorPrimaryDark</item>
    <item name="titleTextStyle">@style/MyActionBarTitle</item>
    <item name="actionMenuTextColor">@color/accent</item>

</style>
<style name="MyActionBarTitle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
    <item name="android:textColor">@color/accent</item>
    <item name="android:actionMenuTextColor">@color/accent</item>
    <item name="actionMenuTextColor">@color/accent</item>

</style>
<style name="MyActionBar.MenuTextStyle">
    <item name="android:textColor">@color/accent</item>
    <item name="android:textStyle">bold</item>
    <item name="android:actionMenuTextColor">@color/accent</item>
    <item name="actionMenuTextColor">@color/accent</item>
</style>
Run Code Online (Sandbox Code Playgroud)

The*_*y77 7

主题中的简单一行:)

<item name="android:actionMenuTextColor">@color/your_color</item>
Run Code Online (Sandbox Code Playgroud)

  • 嗨,Prashanna,它已经在我的主题中了,颜色没有变化。请检查我更新的代码和问题 (2认同)

Nil*_*hod 7

试试这个创建这个主题

<style name="TextAppearance" parent="@style/Theme.Sherlock.Light">
   <item name="actionMenuTextColor">@color/white</item>
   <item name="android:actionMenuTextColor">@color/white</item>
</style>
Run Code Online (Sandbox Code Playgroud)

而不是像这样在您的活动主题中应用此主题

<style name="your_theme" parent="your_parent">
  <item name="android:itemTextAppearance">@style/TextAppearance</item>
</style>
Run Code Online (Sandbox Code Playgroud)

或尝试这个

 @Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.your_menu, menu);

    int positionOfMenuItem = 0; 
    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);
}
Run Code Online (Sandbox Code Playgroud)