我有一个导航菜单抽屉,设置了多个组和菜单,如下所示:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:title="Participant">
<menu>
<group android:checkableBehavior="single">
<item
android:id="@+id/nav_new"
android:icon="@drawable/ic_menu_share"
android:title="@string/nav_new" />
<item
android:id="@+id/nav_start"
android:icon="@drawable/ic_menu_slideshow"
android:title="@string/nav_start" />
<item
android:id="@+id/nav_delete"
android:icon="@drawable/ic_menu_manage"
android:title="@string/nav_delete" />
</group>
</menu>
</item>
<item android:title="Sensors">
<menu>
<group android:checkableBehavior="single">
<item
android:id="@+id/nav_raw"
android:icon="@drawable/ic_menu_send"
android:title="@string/nav_raw" />
<item
android:id="@+id/nav_graphs"
android:icon="@drawable/ic_menu_gallery"
android:title="@string/nav_graphs" />
</group>
</menu>
</item>
</menu>
我正在尝试将其中一个子菜单项设置为不可见。假设我想隐藏Start项目。我试过这样做:
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
Menu navMenu = navigationView.getMenu();
navMenu.getItem(1).setVisible(false);
我希望它隐藏第二项(开始),但它只是隐藏整个第二个菜单组。
获得像这样的子项目的正确方法是什么?或者我只是错误地布置我的菜单xml?
答案 0 :(得分:0)
请改为尝试:
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
Menu navMenu = navigationView.getMenu();
navMenu.getItem(0).getSubMenu().getItem(1).setVisible(false);