Android:NavigationView TextColor

时间:2016-02-15 15:42:29

标签: android android-navigationview

图片说的不仅仅是文字:

Right

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

这是我的代码:

<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" />

我该如何解决这个问题?

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

是的,“标题”颜色没有变化。它仍然是黑色..

要完成此操作,这里是带有白色背景的导航视图,现在您可以看到标题: enter image description here

3 个答案:

答案 0 :(得分:1)

您的应用看起来像是使用了浅色主题,但您希望导航视图显得很暗。这意味着您必须覆盖导航视图的主题。

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

RES /颜色/ 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 /颜色/ 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 /值/ 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 /布局/ 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" />

答案 1 :(得分:0)

我们可以使用 app:itemTextColor &amp; NavigationView 中的 app: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">

答案 2 :(得分:0)

您需要为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>

请以您的样式设置以上属性。 希望对将来有帮助。