当我们添加部分时,如何在NavigationView的抽屉菜单中保持单一checkableBehavior模式?

时间:2015-06-25 08:27:56

标签: android navigation-drawer material-design

我尝试使用新材料设计组件实现抽屉:NavigationView

它的工作非常好。当我选择一个项目时,使用android:checkableBehavior="single"更改其颜色变化。

<group
    android:checkableBehavior="single">

    <item
        android:id="@+id/drawer_home"
        android:checked="true"
        android:icon="@drawable/ic_home_black_24dp"
        android:title="@string/home"/>

    <item
        android:id="@+id/drawer_favourite"
        android:icon="@drawable/ic_favorite_black_24dp"
        android:title="@string/favourite"/>
    ...

    <item
        android:id="@+id/drawer_settings"
        android:icon="@drawable/ic_settings_black_24dp"
        android:title="@string/settings"/>

</group>

当我尝试在抽屉中使用部分时出现问题。在这种情况下,我无法使用android:checkableBehavior="single",我在选择项目时丢失了颜色变化。

<item
    android:id="@+id/section"
    android:title="@string/section_title">

    <menu>
        <item
            android:id="@+id/drawer_favourite"
            android:icon="@drawable/ic_favorite_black_24dp"
            android:title="@string/favourite"/>

        <item
            android:id="@+id/drawer_downloaded"
            android:icon="@drawable/ic_file_download_black_24dp"
            android:title="@string/downloaded"/>
    </menu>

</item>

2 个答案:

答案 0 :(得分:8)

try this:

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

        <item
            android:id="@+id/drawer_home"
            android:checked="true"
            android:icon="@drawable/ic_home_black_24dp"
            android:title="@string/home"/>

       <item
            android:id="@+id/drawer_favourite"
            android:icon="@drawable/ic_favorite_black_24dp"
            android:title="@string/favourite"/>
       ...

       <item
            android:id="@+id/drawer_settings"
            android:icon="@drawable/ic_settings_black_24dp"
            android:title="@string/settings"/>
       <item
            android:id="@+id/section"
            android:title="@string/section_title">

            <menu>
                <group android:checkableBehavior="single">
                    <item
                        android:id="@+id/drawer_favourite"
                        android:icon="@drawable/ic_favorite_black_24dp"
                        android:title="@string/favourite"/>

                    <item
                        android:id="@+id/drawer_downloaded"
                        android:icon="@drawable/ic_file_download_black_24dp"
                        android:title="@string/downloaded"/>
                </group>
            </menu>

       </item>

    </group>
</menu>

you can check this solution for details.. I am unable to set a submenu item as checked

答案 1 :(得分:1)

作为一种解决方法,直到Fondesa报告的错误得到解决,您可以使用:

菜单定义

$newArr

<强>定型

<item android:checkable="true" ...>

选择时,这将高度适用于菜单项。

请注意,这不符合要求:

<item android:state_selected="true" android:color="@color/error_color"/>

您必须手动处理。