1

图片胜于雄辩:

正确的

这应该是正确的外观..但我明白了: 错误的

这是我的代码:

<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/Black"
    app:headerLayout="@layout/nav_header"
    app:itemIconTint="@color/White"
    app:itemTextColor="@color/White"
    app:menu="@menu/drawer" />

我该如何解决这个问题?

这是我的菜单 XML:

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <group>
        <item
            android:id="@+id/drawerFullName"
            android:icon="@drawable/fullnamemale"
            android:title="@string/full_name" />
        <item
            android:id="@+id/drawerAge"
            android:icon="@drawable/age"
            android:title="@string/age" />
        <item
            android:id="@+id/drawerAbout"
            android:icon="@drawable/about"
            android:title="@string/about_user_in_20_letters" />
        <item android:title="@string/personalize">
            <menu>
                <item
                    android:id="@+id/drawerChangeTheme"
                    android:icon="@drawable/changetheme"
                    android:title="@string/change_your_theme" />
            </menu>
        </item>
        <item android:title="@string/user_settings">
            <menu>
                <item
                    android:id="@+id/drawerLogout"
                    android:icon="@drawable/logout"
                    android:title="@string/logout" />
            </menu>
        </item>
    </group>
</menu>

是的,“标题”颜色没有改变。还是黑的。。

为了完成这个,这里是一个白色背景的导航视图,现在你可以看到标题: 在此处输入图像描述

4

3 回答 3

6

我们可以在NavigationView中使用app:itemTextColorapp:itemIconTint来更改导航菜单项的文本和图标颜色。

 <android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:fitsSystemWindows="true"
        app:itemTextColor="@color/drawer_menu_text"
        app:itemIconTint="@color/drawer_menu_text"
        app:menu="@menu/menu_navigation_drawer">
于 2017-09-06T18:03:24.323 回答
3

看起来您的应用正在使用浅色主题,但您希望导航视图变暗。这意味着您必须覆盖导航视图的主题。

以下代码允许您在导航视图中完全自定义文本颜色:

res/color/primary_text.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- 38% white for disabled color per material design specs.
    <item
        android:color="#60ffffff"
        android:state_enabled="false"/>
    <!-- 100% white for primary text. -->
    <item android:color="#ffffffff"/>
</selector>

res/color/secondary_text.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- 38% white for disabled color per material design specs. -->
    <item
        android:color="#60ffffff"
        android:state_enabled="false"/>
    <!-- 70% white for secondary text. -->
    <item android:color="#b2ffffff"/>
</selector>

res/values/styles.xml

<style name="ThemeOverlay.MyApp.NavigationView" parent="ThemeOverlay.AppCompat.Dark">
    <!-- This is the menu item text color. -->
    <item name="android:primaryTextColor">@color/primary_text</item>
    <!-- This is the menu header text color. -->
    <item name="android:secondaryTextColor">@color/secondary_text</item>
    <!-- This is the selected color. -->
    <item name="colorPrimary">@color/primary</item>
</style>

res/layout/something.xml

<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/Black"
    android:theme="@style/ThemeOverlay.MyApp.NavigationView"
    app:headerLayout="@layout/nav_header"
    app:menu="@menu/drawer" />
于 2016-02-15T17:31:05.513 回答
1

您需要为 NavigationView 提供样式。

<style name="ApBaseDrawerNavigationMenuStyle" parent="Theme.AppCompat.DayNight.DarkActionBar">
        <item name="colorControlNormal">@null</item>
        <item name="android:color">@color/text_color</item>
        <item name="android:textColor">@color/text_color</item>
        <item name="android:textColorHint">@color/text_color</item>
        <item name="android:textColorPrimary">@color/text_color</item>
        <item name="android:textColorSecondary">@color/gray_shade_555555</item>
        <item name="android:background">#548893</item>
        <item name="android:colorPrimary">@color/text_color</item>
        <item name="android:colorControlHighlight">@color/text_color</item>
    </style>

请按照您的风格设置上述属性。希望这对将来有所帮助。

于 2019-09-29T11:05:46.277 回答