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

问题描述

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

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

@H_502_6@<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 :(此文件位于菜单文件夹中)

@H_502_6@<?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>