android – 当我们使用app时更改选项菜单的文字颜色:showAsAction =“always”

前端之家收集整理的这篇文章主要介绍了android – 当我们使用app时更改选项菜单的文字颜色:showAsAction =“always”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用工具栏和使用选项进行相应的操作.我的问题是我想在白色工具栏上显示“SAVE”文本,我应用了很多样式,但它总是显示为黑色.但是当选项显示为弹出窗口时,文本颜色始终为白色.我谷歌这很多,但没有解决方案.

这是我的代码

工具栏

  1. <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
  2.  
  3. xmlns:app="http://schemas.android.com/tools"
  4. android:id="@+id/my_awesome_toolbar"
  5. android:layout_width="match_parent"
  6. android:layout_height="?attr/actionBarSize"
  7. app:theme="@android:style/ThemeOverlay.Material.Light"
  8. app:popupTheme="@style/Theme.AppCompat.NoActionBar"
  9. android:background="@drawable/tb_header"
  10. android:minHeight="?attr/actionBarSize"/>

款式

  1. <style name="MStyle" parent="Theme.AppCompat.Light.NoActionBar">
  2.  
  3. <item name="android:windowBackground">@android:color/white</item>
  4. <item name="android:colorBackground">@android:color/black</item>
  5. <item name="colorPrimary">@color/colorPrimary</item>
  6. <item name="colorAccent">@color/colorAccent</item>
  7. <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
  8. <item name="android:textAllCaps">false</item>
  9. <item name="android:popupMenuStyle">@style/MyPopupMenu</item>
  10. <item name="android:panelBackground">@android:color/holo_green_light</item>
  11. <item name="android:actionBarWidgetTheme">@style/AppTheme</item>
  12.  
  13. </style>
  14.  
  15. <style name ="MyPopupMenu" parent="android:Theme.Holo.Light">
  16. <item name="android:popupBackground">@android:color/holo_green_light</item>
  17. </style>
  18.  
  19.  
  20. ****Option menu****
  21.  
  22. <menu xmlns:android="http://schemas.android.com/apk/res/android"
  23. xmlns:app="http://schemas.android.com/apk/res-auto"
  24. xmlns:tools="http://schemas.android.com/tools"
  25. tools:context="com.doubtfire.userprofiles.ParentProfileActivity">
  26. <item
  27. android:id="@+id/action_skip"
  28. android:title="@string/menu_str_skip"
  29.  
  30. android:orderInCategory="100"
  31. app:showAsAction="always" />
  32. </menu>
  33.  
  34.  
  35. ****I even apply code at onPrepareOptionMenu****
  36.  
  37.  
  38.  
  39. @Override
  40. public boolean onPrepareOptionsMenu(Menu menu) {
  41. for (int i=0; i<menu.size(); i++) {
  42. MenuItem mi = menu.getItem(i);
  43. String title = mi.getTitle().toString();
  44. Spannable newTitle = new SpannableString(title);
  45. newTitle.setSpan(new ForegroundColorSpan(Color.WHITE),newTitle.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
  46. mi.setTitle(newTitle);
  47. }
  48. return true;
  49. }

解决方法

使用
  1. <item name="android:actionMenuTextColor">#FFFFFF</item>

在MStyle中,如下所示:

  1. <style name="MStyle" parent="Theme.AppCompat.Light.NoActionBar">
  2.  
  3. ...
  4.  
  5. <item name="android:actionMenuTextColor">#FFFFFF</item>
  6. <!-- for appcompat-->
  7. <item name="actionMenuTextColor">#FFFFFF</item>
  8. </style>

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

猜你在找的Android相关文章