Android 在组导航菜单中添加菜单项

Android 在组导航菜单中添加菜单项,android,navigation-drawer,Android,Navigation Drawer,我有一个导航菜单,看起来像这样- <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/nav_home" android:icon="@drawable/ic_home" android:title="Home" /> <item android:id="@+id/nav_logout" android

我有一个导航菜单,看起来像这样-

<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
    android:id="@+id/nav_home"
    android:icon="@drawable/ic_home"
    android:title="Home" />
<item
    android:id="@+id/nav_logout"
    android:icon="@drawable/ic_logout"
    android:title="Logout" />

<item
    android:id="@+id/choose_bus"
    android:title="Choose a bus">
    <menu>
        <group
            android:id="@+id/group_select_bus"
            android:checkableBehavior="single">
            <!--<item-->
                <!--android:id="@+id/menu_option1"-->
                <!--android:title="Bus 1" />-->
            <!--<item-->
                <!--android:id="@+id/menu_option2"-->
                <!--android:title="Bus 2" />-->
        </group>
    </menu>
</item>

试试这样的东西

Menu menu = navView.getMenu();
menu.add(R.id.group_select_bus,Menu.NONE,Menu.NONE,Youritem);

另一种方法是在导航菜单中添加所有项,然后更改它们在特定活动或片段上的可见性,如

MenuItem item = mNavigationView.getMenu().getItem(5);
item.setVisible(false);
试试这个:

MenuItem item = mNavigationView.getMenu().getItem(2);
item.getSubMenu().add(R.id.group_select_bus, id, Menu.NONE, "Youritem");

回答这个问题似乎有点晚了。这方面有解决方法。不需要添加列表。只需在代码上方添加这一行。它确实有效

override fun onNavigationItemSelected(item: MenuItem): Boolean {

    when (item.itemId) {
        R.id.candidates -> {
            binding.navSideView.post {
                navSideView.menu.findItem(R.id.candidateManagement).isVisible = !navSideView.menu.findItem(R.id.candidateManagement).isVisible
            }
        }
    }
    return true
}

在更改可见性之前,需要添加navigationview.post Runnable。它将更新菜单。它也适用于团体。:)

已尝试此操作,但仍然相同。NavigationView navView=(NavigationView)findViewById(R.id.nav_视图);Menu Menu=navView.getMenu();menu.add(R.id.group_选择_总线,menu.NONE,menu.NONE,“总线1”);我想动态地添加它。你很难用图标动态地添加它
override fun onNavigationItemSelected(item: MenuItem): Boolean {

    when (item.itemId) {
        R.id.candidates -> {
            binding.navSideView.post {
                navSideView.menu.findItem(R.id.candidateManagement).isVisible = !navSideView.menu.findItem(R.id.candidateManagement).isVisible
            }
        }
    }
    return true
}