Android 材质设计导航抽屉项目选定样式

Android 材质设计导航抽屉项目选定样式,android,material-design,Android,Material Design,下午, 我试图找到答案,但似乎没有任何直接的解释,我希望应该是非常简单的事情 我刚刚开始使用material design导航抽屉,需要更改抽屉中选定项目的背景颜色 <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <group android:checkableBehavior="single"&g

下午,

我试图找到答案,但似乎没有任何直接的解释,我希望应该是非常简单的事情

我刚刚开始使用material design导航抽屉,需要更改抽屉中选定项目的背景颜色

<?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/item_1"
        android:icon="@drawable/item1"
        android:title="Item 1" />
    <item
        android:id="@+id/item_2"
        android:icon="@drawable/item2"
        android:title="Item 2" />
    <item
        android:id="@+id/item_3"
        android:icon="@drawable/item3"
        android:title="Item 3" />
</group>
这是抽屉中项目的代码

<?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/item_1"
        android:icon="@drawable/item1"
        android:title="Item 1" />
    <item
        android:id="@+id/item_2"
        android:icon="@drawable/item2"
        android:title="Item 2" />
    <item
        android:id="@+id/item_3"
        android:icon="@drawable/item3"
        android:title="Item 3" />
</group>

我的mainActivityXML中有以下内容

<android.support.design.widget.NavigationView
    android:id="@+id/nav_view"
    android:background="#202020"
    app:itemTextColor="@android:color/white"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:fitsSystemWindows="true"
    app:headerLayout="@layout/nav_header_main"
    app:menu="@menu/activity_main_drawer" />

我已经用背景和文本颜色管理了抽屉的样式,但如上所述,我现在需要更改所选项目的背景颜色


任何帮助都将不胜感激

您必须为未选中的项目设置抽屉中的项目

<?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/item_1"
        android:checked="false"
        android:icon="@drawable/item1"
        android:title="Item 1" />
    <item
        android:id="@+id/item_2"
        android:checked="false"
        android:icon="@drawable/item2"
        android:title="Item 2" />
    <item
        android:id="@+id/item_3"
        android:checked="false"
        android:icon="@drawable/item3"
        android:title="Item 3" />
</group>

您必须为未选中的项目设置抽屉中的项目

<?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/item_1"
        android:checked="false"
        android:icon="@drawable/item1"
        android:title="Item 1" />
    <item
        android:id="@+id/item_2"
        android:checked="false"
        android:icon="@drawable/item2"
        android:title="Item 2" />
    <item
        android:id="@+id/item_3"
        android:checked="false"
        android:icon="@drawable/item3"
        android:title="Item 3" />
</group>
将新样式添加到styles.xml:

res/values/styles.xml

将新样式添加到styles.xml:

res/values/styles.xml


我选择了正确的项目,但找不到更改所选项目背景颜色的方法。现在它是黑色的,我需要把它换成蓝色。不确定这是不是答案?这对我很有效。在setChecked(true)上,它根据使用主题的应用程序设置选定的背景项目颜色,因此尝试更改主题颜色这是我正在尝试解决的问题,我需要指定主题的哪一位颜色?原色不起作用?在这种情况下,您必须设置导航抽屉的自定义主题,如#2AF2A,然后只需在导航抽屉应用程序中设置主题:theme=“@style/NavigationStyle”我选择了正确的项目,但我找不到更改所选项目背景颜色的方法。现在它是黑色的,我需要把它换成蓝色。不确定这是不是答案?这对我很有效。在setChecked(true)上,它根据使用主题的应用程序设置选定的背景项目颜色,因此尝试更改主题颜色这是我正在尝试解决的问题,我需要指定主题的哪一位颜色?原色不起作用?在这种情况下,您必须设置导航抽屉的自定义主题,如#2AF2A,然后只需在导航抽屉应用程序中设置主题即可:theme=“@style/NavigationStyle”完美,正是我想要的!我花了一个小时左右的时间试图在文档中找到这个,谢谢,非常感谢。太好了,正是我想要的!我花了一个小时左右的时间试图在文档中找到这个,所以谢谢,非常感谢。
<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:headerLayout="@layout/nav_header_main"
    app:menu="@menu/activity_main_drawer" 
    app:theme="@style/TextAppearance" />