从 NavigationView 获取子菜单
Get child menu from NavigationView
在抽屉中 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);
}
但是我如何进入嵌套菜单项,例如将其设置为选中?
在项目周围设置一个 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>
在抽屉中 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);
}
但是我如何进入嵌套菜单项,例如将其设置为选中?
在项目周围设置一个 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>