【问题标题】:Change text color of option menu when we use app:showAsAction="always"使用 app:showAsAction="always" 时更改选项菜单的文本颜色
【发布时间】:2015-06-28 06:31:44
【问题描述】:

我正在使用工具栏并使用相应操作的选项。我的问题是我想在工具栏上用白色显示“保存”文本,我应用了很多样式,但它总是显示为黑色。 But when option appear as popup then text color is always white .我google了很多,但没有解决方案。

这是我的代码:

工具栏

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:app="http://schemas.android.com/tools"
    android:id="@+id/my_awesome_toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    app:theme="@android:style/ThemeOverlay.Material.Light"
    app:popupTheme="@style/Theme.AppCompat.NoActionBar"
    android:background="@drawable/tb_header"
    android:minHeight="?attr/actionBarSize"/>

样式

 <style name="MStyle" parent="Theme.AppCompat.Light.NoActionBar">

 <item name="android:windowBackground">@android:color/white</item>
        <item name="android:colorBackground">@android:color/black</item>
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="android:textAllCaps">false</item>
        <item name="android:popupMenuStyle">@style/MyPopupMenu</item>
        <item name="android:panelBackground">@android:color/holo_green_light</item>
        <item name="android:actionBarWidgetTheme">@style/AppTheme</item>

    </style>

<style name ="MyPopupMenu" parent="android:Theme.Holo.Light">
        <item name="android:popupBackground">@android:color/holo_green_light</item>
    </style>


****Option menu**** 

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.doubtfire.userprofiles.ParentProfileActivity">
    <item
        android:id="@+id/action_skip"
        android:title="@string/menu_str_skip"

        android:orderInCategory="100"
        app:showAsAction="always" />
</menu>


****I even apply code at onPrepareOptionMenu**** 



   @Override
        public boolean onPrepareOptionsMenu(Menu menu) {
            for (int i=0; i<menu.size(); i++) {
                MenuItem mi = menu.getItem(i);
                String title = mi.getTitle().toString();
                Spannable newTitle = new SpannableString(title);
                newTitle.setSpan(new ForegroundColorSpan(Color.WHITE), 0, newTitle.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
                mi.setTitle(newTitle);
            }
            return true;
        }

【问题讨论】:

    标签: android material-design android-toolbar optionmenu


    【解决方案1】:

    使用

    <item name="android:actionMenuTextColor">#FFFFFF</item>
    

    MStyle,如下图:

    <style name="MStyle" parent="Theme.AppCompat.Light.NoActionBar">
    
      ...
    
      <item name="android:actionMenuTextColor">#FFFFFF</item>
      <!-- for appcompat-->
      <item name="actionMenuTextColor">#FFFFFF</item>
    </style>
    

    当 SAVE 项在ActionBar 上可见时,此更改菜单项的颜色

    【讨论】:

    • 这不起作用:(
    • 也许我没听懂你的意思。您想更改操作栏上菜单项的文本吗?对吗?如果是,这应该有效。您是否将您的样式添加到 Manifest 中的 Activity 中?
    • 是的,我想要的正是你所说的,我将这个主题添加到 while app in application tag as
    • @KonradKrakowiak 这在 5.0 中工作,但在 4.0 中没有。。如何对所有版本做同样的事情
    【解决方案2】:

    要更改Toolbar 菜单中文本的颜色,请使用以下代码。

    <style name="MStyle" parent="Theme.AppCompat.Light.NoActionBar">
             ....   
    
               <item name="actionMenuTextColor">#FFFFFF</item>
    
    </style>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-04
      • 1970-01-01
      • 2013-09-24
      • 2011-04-14
      • 2017-10-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多