给定一个带有子菜单项的部分的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)相同,但我还没有找到指定方法的方法两个分开。我需要背景颜色为一种颜色,子菜单标题行/项目需要另一种颜色。
答案 0 :(得分:0)
itemBackground
,itemIconTint
和itemTextColor
是可以设置的简单xml属性,但您必须使用自定义前缀而不是android:one。
实施例
<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。
答案 1 :(得分:0)
使用compile&#39; com.android.support:appcompat-v7:23.1.1&#39;
<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" />
用于项目backgroud的以下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" />