【问题标题】:how to change menu title color android java如何更改菜单标题颜色android java
【发布时间】:2020-08-24 14:19:52
【问题描述】:

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

这是我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>

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

我在 StackOverflow 上看到了很多解决方案,但我没有找到适合我的问题的解决方案。

【问题讨论】:

    标签: java android navigation-drawer android-styles android-navigationview


    【解决方案1】:

    标题组的颜色基于应用主题中 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>
    

    【讨论】:

    • 好吧,我承认这是一个比我更好的解决方案......所以 +1 值得(你还教我关于光/暗模式 XD)#questal'haivintatu ;)
    【解决方案2】:

    转到您的 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>
    

    【讨论】:

    • 我需要更改菜单标题而不是菜单项,您可以看一下图片了解我
    • @АхмедРашед 使用项目的一些代码编辑您的问题
    • @АхмедРашед 我甚至需要 menu.xml 中的所有项目
    • @АхмедРашед 将项目放入组中
    • 你让它像菜单项一样可点击,我不会这样我需要它只是一个标题而不是项目
    猜你喜欢
    • 1970-01-01
    • 2016-02-11
    • 1970-01-01
    • 1970-01-01
    • 2015-12-05
    • 1970-01-01
    • 2023-03-06
    • 2020-11-17
    • 2023-04-02
    相关资源
    最近更新 更多