从NavigationView获取子菜单

时间:2016-01-15 23:43:48

标签: android menu navigation nested drawer

在抽屉里的NavigationView菜单中,我有嵌套菜单:

<item android:title="View options">
        <menu>
                <item
                    android:id="@+id/nav_gallery"
                    android:icon="@android:drawable/ic_menu_gallery"
                    android:title="Gallery"
                    android:enabled="true"
                    android:checked="true"/>
                <item
                    android:id="@+id/nav_slideshow"
                    android:icon="@android:drawable/ic_menu_slideshow"
                    android:title="Slideshow"
                    android:enabled="true"
                    android:checked="false"/>
        </menu>
    </item>

我知道如何在DrawerLayout的一个回调方法中使用标准菜单项:

public void onDrawerOpened(View drawerView) {
        NavigationView navigationView = (NavigationView) drawerView.findViewById(R.id.nav_view);
        Menu mm = navigationView.getMenu();
        MenuItem m = mm.findItem(R.id.nav_regular_menu_item;
        m.setChecked(true);
    }

但是,如何设置嵌套菜单项,例如设置它?

1 个答案:

答案 0 :(得分:1)

在项目周围设置一个包含android:checkableBehaviour =“single”的组,然后navigationView.getMenu().findItem(R.id.nav_gallery).setChecked(true);应该适合你。

<item android:title="View options">
        <menu>
            <group
                android:id="@+id/submenu"
                android:checkableBehavior="single">
            <item
                android:id="@+id/nav_gallery"
                android:icon="@android:drawable/ic_menu_gallery"
                android:title="Gallery"/>
            <item
                android:id="@+id/nav_slideshow"
                android:icon="@android:drawable/ic_menu_slideshow"
                android:title="Slideshow"/>
            </group>
        </menu>
    </item>