菜单中的操作项设置文本颜色

时间:2016-10-31 22:46:58

标签: android menu android-actionbar

我有一个菜单,在3个不同的活动中充当工具栏。其中一个活动有一个溢出菜单,其中一个Action在Overflow后面。 我可以更改Action的背景颜色。我无法更改与Action关联的文本的文本颜色。请不要投票我已经查看并尝试了所有136个类似的发布问题。 这是下面的样式代码和菜单代码。

<resources>
<!-- Base application theme. -->
<!-- parent="Theme.AppCompat.NoActionBar"> -->
<!-- Line of CODE ABOVE gives WHITE color to items in ToolBar -->
<!-- Line of CODE BELOW gives BLACk color to items in ToolBar -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="android:itemBackground">@color/color_Red</item>
    <item name="actionMenuTextColor">@style/MyActionBarTitleText</item>
</style>

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

菜单代码

<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=".MainActivity">

<item
    android:id="@+id/action_ReSetPW"
    android:orderInCategory="100"
    android:title="@string/action_settings"
    app:showAsAction="never"
    android:visible="true"/>

作为旁注,我也无法根据某些参数更改标题文字颜色。我想知道如何设置或更改文本颜色? 经过一些试验和错误后,我发布的样式代码包含以下解决方案代码的注释

<resources>
<!-- Base application theme. -->
<!-- parent="Theme.AppCompat.NoActionBar"> -->
<!-- Line of CODE ABOVE gives WHITE color to items in ToolBar -->
<!-- Line of CODE BELOW gives BLACk color to items in ToolBar -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="android:itemBackground">@color/color_Red</item>
    <!--The line of CODE above styles the action background color  -->

</style>

<style name="Toolbar.TitleText" parent="TextAppearance.Widget.AppCompat.Toolbar.Title">
    <item name="android:textSize">21sp</item>
    <item name="android:textStyle">italic</item>
</style>

<!--ADD THIS TO THE XML that defines the widget ToolBar android:theme="@style/ToolbarTheme" -->
<!--the line of CODE above tells the ToolBar where to find the style to use -->
<!--Code below will make the Overflow three dots Yellow and the text of the Action Yellow -->
<style name="ToolbarTheme" parent="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
    <item name="android:textColorPrimary">@color/color_Yellow</item>
</style>

解决方案的一部分似乎是从toolbar.xml中调用样式

3 个答案:

答案 0 :(得分:2)

编辑:

This回答正在发挥作用:

<强> styles.xml

<!-- 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="android:itemTextAppearance">@style/itemTextStyle.AppTheme</item>
</style>

<style name="AppTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />

<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />

<style name="itemTextStyle.AppTheme" parent="@android:style/TextAppearance.Widget.IconMenu.Item">
    <item name="android:textColor">@color/color_item_popup</item>
</style>

<强> RES /颜色/ color_item_popup.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:color="#FFFF00"/>
    <item android:state_focused="true" android:color="#FFFF00"/>
    <item android:color="#00FFFF"/>
</selector>

答案 1 :(得分:1)

你们都有正确的想法我可能会建议你看看这个ThemeOverlay链接,它解释了ThemeOverlay vrs主题。值得你的时间James_Duh

ThemeOverlay

怎么会有人知道TEXT textColorPrimary引用的内容。 我想这一切都在NAME中

<item name="android:textColorPrimary">@color/color_White</item>

答案 2 :(得分:0)

app:itemTextColor="@color/your_color"

<android.support.design.widget.NavigationView
    android:id="@+id/navigation_view_search"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:fitsSystemWindows="true"
    app:headerLayout="@layout/nav_header"
    app:menu="@menu/drawer_menu"
    app:itemTextColor="@color/colorWhite"
    app:itemIconTint="@android:color/white"
    android:background="@drawable/nav_drawer_background" />