如何更改菜单标题颜色android java

问题描述

我需要在抽屉式导航活动中更改菜单标题颜色。

这是我的activity_main.xml的一部分:

<com.google.android.material.navigation.NavigationView
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:id="@+id/naView"
    android:fitsSystemWindows="false"
    android:background="@drawable/navbackground"
    android:layout_gravity="start"
    app:itemIconTint="@color/grayWhite"
    app:headerLayout="@layout/navigationheader"
    app:menu="@menu/menu">

这是我的activity_main_drawer.xml :(此文件位于菜单文件夹中)

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <group android:checkableBehavior="single">
        <item
            android:id="@+id/vibrationItem"
            android:icon="@drawable/ic_baseline_vibration_24"
            android:title="vibration" />
        <item
            android:id="@+id/Settings"
            android:icon="@drawable/ic_baseline_settings_24"
            android:title="Settings" />
    </group>
    <item android:title="others">
        <menu>
            <item android:title="logout"
            android:id="@+id/logout"
                android:icon="@drawable/logout"/>
        </menu>
    </item>
</menu>

这是我从代码中得到的,以及如何以不同的颜色显示“其他”:

screenshot

我在StackOverflow上看到了许多解决方案,但是找不到解决我问题的好方法

解决方法

标题组的颜色基于应用主题中 android:textColorSecondary 项定义的颜色。

<style name="AppTheme" parent="Theme.MaterialComponents.*"> 
    <item name="android:textColorSecondary">@color/....</item>
</style>

您可以使用以下方法覆盖android:textColorSecondary颜色:

<com.google.android.material.navigation.NavigationView
    android:theme="@style/ThemeOverlay.titleColor"
    ..>

具有:

  <style name="ThemeOverlay.titleColor" parent="">
    <item name="android:textColorSecondary">@color/....</item>
  </style>

enter image description here

,

转到您的strings.xml文件并编写:

<string name="namestring"><font fgcolor='#YOUR_COLOR'>others</font></string>

现在转到您的menu.xml文件,并将代码更改为此:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">

<group android:checkableBehavior="single">
    <item
        android:id="@+id/vibrationItem"
        android:icon="@drawable/ic_baseline_vibration_24"
        android:title="vibration" />
    <item
        android:id="@+id/Settings"
        android:icon="@drawable/ic_baseline_settings_24"
        android:title="Settings" />
</group>
<item android:title="@string/namestring">

    <menu>
        <item android:title="Logout"

        android:id="@+id/Logout"
            android:icon="@drawable/logout"/>
    </menu>

</item>
</menu>

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...