1

給定NavigationView與子菜單項,像這樣的部分:如何更改導航視圖子菜單標題標題的背景顏色?

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

    <item android:title="Sub items"> 
    <menu> 
     <item android:title="Sub item 1" /> 
     <item android:title="Sub item 2" /> 
    </menu> 
    </item> 
</menu> 

問題:如何改變子項目行的背景顏色?

在我的實驗中,它看起來像用於子菜單標題行/項目的顏色與NavigationView(android:backgroundTint和android:background)的背景顏色相同,但我沒有找到一種方法來指定兩個分開。我需要背景顏色是一種顏色,子菜單標題行/項目是另一種顏色。

enter image description here

回答

0

itemBackgrounditemIconTintitemTextColor是可以設置簡單的XML的屬性,但你必須使用一個自定義的前綴,而不是機器人:一個。

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true"> 

    <!-- Other layout views --> 

    <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:itemBackground="@drawable/my_ripple" 
     app:itemIconTint="#2196f3" 
     app:itemTextColor="#009688" 
     app:headerLayout="@layout/nav_header" 
     app:menu="@menu/drawer_view" /> 

</android.support.v4.widget.DrawerLayout> 

例 創建一個新*.xml file in /res/color - 讓我們將其命名爲state_list.xml - 具有以下內容:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <!-- This is used when the Navigation Item is checked --> 
    <item android:color="#009688" android:state_checked="true" /> 
    <!-- This is the default text color --> 
    <item android:color="#E91E63" /> 
</selector> 

和簡單地引用這樣的:app:itemTextColor="@color/state_list"

itemIconTint也是如此。 itemBackground需要資源ID。

+0

這讓我們更接近解決方案,但並不完全在那裏。是的,通過這個我們可以改變子菜單的**標題**行/項目的顏色,但我們無法區分子菜單行/項目。目標是更改*標題*行/項目的背景顏色,使其看起來不同於其子菜單行/項目之一。一世 –

0

使用編譯 'com.android.support:appcompat-v7:23.1.1'

<android.support.design.widget.NavigationView 
android:id="@+id/nav_view" 
android:layout_width="wrap_content" 
android:layout_height="match_parent" 
android:layout_gravity="start" 
app:headerLayout="@layout/nav_header_main_navigation" 
app:itemBackground="@drawable/nav_view_item_background" 
app:itemTextColor="@color/nav_item_text_color" 
app:menu="@menu/activity_main_navigation_drawer" /> 

用來對項目研究背景下面的XML文件:nav_view_item_background.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:drawable="@color/colorPrimary" android:state_checked="true" /> 
<item android:drawable="@android:color/transparent" /> 

用於以下用於文本顏色的XML文件:nav_item_text_color

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:color="@color/white" android:state_checked="true" /> 
<item android:color="@android:color/black" />