更改NvaigationView SubHeader颜色

时间:2015-11-30 18:45:43

标签: android navigation-drawer android-support-library

我有一个带有子标题的导航视图,我想要更改文本颜色,我尝试了所有我知道但没有任何作用。

这是我的菜单: enter image description here

我想改变" sub"文本颜色和列表分隔符颜色。

有什么想法吗?

我的代码:

menu.xml

<?xml version="1.0" encoding="utf-8"?>

<menu xmlns:android="http://schemas.android.com/apk/res/android">

<group android:checkableBehavior="single">
    <item
        android:id="@+id/navigation_item_1"
        android:icon="@mipmap/ic_launcher"
        android:checked="true"
        android:title="teste"/>
    <item
        android:id="@+id/navigation_item_2"
        android:icon="@mipmap/ic_launcher"
        android:title="teste"/>
</group>

<item
    android:id="@+id/navigation_subheader"
    android:title="sub">
    <menu>
        <item
            android:id="@+id/navigation_sub_item_1"
            android:icon="@mipmap/ic_launcher"
            android:title="teste"/>
        <item
            android:id="@+id/navigation_sub_item_2"
            android:icon="@mipmap/ic_launcher"
            android:title="teste"/>
    </menu>
</item>
</menu>

activity_main.xml

[...]
<android.support.design.widget.NavigationView
    android:id="@+id/navigation"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="top"
    android:nestedScrollingEnabled="true"
    app:menu="@menu/activity_main_drawer"
    app:headerLayout="@layout/nav_header_main"
    app:itemTextColor="@color/menu_item"
    app:itemIconTint="@color/headerMenuTextDisabled"
    android:layout_above="@+id/version"
    />
[...]

menu_item.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@color/headerMenuText" android:state_pressed="true"/>
    <item android:color="@color/headerMenuTextDisabled" android:state_enabled="false"/>
    <item android:color="@color/headerMenuText"/>
</selector>

2 个答案:

答案 0 :(得分:3)

<item name="android:textColorSecondary">#FF0000</item> would change the sub header title color of navigation view.

答案 1 :(得分:1)

您可以为导航抽屉创建自定义主题,并将 textColorSecondary 设置为您想要的颜色。

在themes.xml中

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="100dp"
              android:layout_height="match_parent">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:text="TEXTVIEW-1" />

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_alignParentRight="true"
            android:layout_toLeftOf="@id/textView1"
            android:layout_marginRight="1dp"
            android:text="TEXTVIEW-2" />

    </RelativeLayout>

</LinearLayout>

在AndroidManifest.xml中

<resources>
   <style name="NavigationDrawerTheme" parent="YourOwnBaseTheme">
   <item name="android:textColorSecondary">#FFF000</item>
   </style>
</resources>

或者你可以从导航抽屉的第三方实现中受益,它已经解决了这个问题以及许多其他问题(例如分隔颜色):

https://github.com/oprisnik/navdrawer

https://github.com/mikepenz/MaterialDrawer