更改NavigationView中项目文本颜色

7
我该如何更改NavigationView菜单项的文本颜色?我的menu.xml文件如下,我还写了app:itemIconTint="@color/white" app:itemTextColor="@color/white"在我的布局中,但它不起作用。
<?xml version="1.0" encoding="utf-8"?>

<item
    android:checked="false"
    android:title="@string/popular">
    <menu>
        <item
            android:id="@+id/tag1"
            android:checked="false"
            android:icon="@drawable/bird"
            android:title="@string/tag1" />

        <item
            android:id="@+id/tag2"
            android:checked="false"
            android:icon="@drawable/rabbit"
            android:title="@string/tag2" />

        <item
            android:id="@+id/tag3"
            android:checked="false"
            android:icon="@drawable/bird"
            android:title="@string/tag3" />

        <item
            android:id="@+id/tag4"
            android:checked="false"
            android:icon="@drawable/rabbit"
            android:title="@string/tag4" />


        <item
            android:id="@+id/tag5"
            android:checked="false"
            android:icon="@drawable/bird"
            android:title="@string/tag5" />
        <item
            android:id="@+id/setting"
            android:checked="false"
            android:icon="@drawable/setting"
            android:title="@string/setting" />
        <item
            android:id="@+id/rate"
            android:checked="false"
            android:icon="@drawable/rating"
            android:title="@string/rate" />
    </menu>
</item>

这是我的应用程序中的NavigationView,您可以看到如果没有itemTextColor效果

我的NavigationView像..

 <android.support.design.widget.NavigationView
    android:id="@+id/navigation_view"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:background="@color/theme_primary"
    app:headerLayout="@layout/layout_drawer_header"
    app:itemIconTint="@color/white"
    app:itemTextColor="@color/white"
    app:menu="@menu/menu_main" />

3
但是您在XML中使用的项目颜色是白色,那么问题是什么? - ρяσѕρєя K
1
正如您在我的NavigationView图像中所看到的,我的热门标签仍然是黑色的,这是主要问题,我希望将热门文本改为白色。 - Gaurav Mandlik
可能是在layout_drawer_header布局中的TextView,所以请尝试检查一下。 - ρяσѕρєя K
根据您的回复,我们无法更改菜单项的颜色,对吗? - Gaurav Mandlik
你可以更改应用程序的辅助色,那应该可以工作。 - Harshit Kumar
3个回答

2

感谢您的回复,我进行了一些搜索并找到了答案。没有任何样式更改,我只需在JAVA文件中进行更改即可完成。

NavigationView navigation_view = (NavigationView) findViewById(R.id.navigation_view);
    navigation_view.setItemTextColor(ColorStateList.valueOf(Color.BLACK));
    navigation_view.setItemIconTintList(null);

1

NavigationView 使用 Widget.Design.NavigationView 主题的颜色。 您可以按照以下方式覆盖该主题。

在 style.xml 中创建自己的样式,覆盖Widget.Design.NavigationView

<style name="NavigationStyle" parent="Widget.Design.NavigationView">
    <item name="android:textColorPrimary">@color/white</item>
    <item name="android:textColorSecondary">@color/white</item>
</style>

在您的布局xml文件中使用该主题:
<android.support.design.widget.NavigationView
        ...
        android:theme="@style/NavigationStyle"
        ... />

0

请检查这个。

android:id="@+id/nav_view"
    android:background="@drawable/login_bg"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    app:itemIconTint="#ffffff"
    app:theme="@style/NavigationDrawerStyle"
    app:itemTextColor="@color/white"
    app:headerLayout="@layout/nav_header_main"
    app:menu="@menu/activity_main_drawer" />

同时,您也可以为导航项添加样式。

    <item name="android:textColorSecondary">#4dffffff</item>
    <item name="android:dividerHeight">0.5dp</item>
    <item name="android:listDivider">@color/white_with_alpha</item>
    <item name="android:textSize">18dp</item>

</style>`

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接