我正在使用工具栏和使用选项进行相应的操作.我的问题是我想在白色工具栏上显示“SAVE”文本,我应用了很多样式,但它总是显示为黑色.但是当选项显示为弹出窗口时,文本颜色始终为白色.我谷歌这很多,但没有解决方案.
这是我的代码:
工具栏
- <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),newTitle.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
- mi.setTitle(newTitle);
- }
- return true;
- }
解决方法
使用
- <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上可见时,此菜单项的更改颜色