从导航抽屉 Kotlin 中恢复已删除的项目

Recover removed item from navigation drawer Kotlin

我有一个可以登录的应用程序,所以我想根据您是否登录来显示不同的抽屉菜单选项。直到现在我一直在尝试并且能够在用户未登录时删除项目。但是,一旦执行登录,我就很难恢复那些已删除的项目。这是我执行此操作的条件:

navController.addOnDestinationChangedListener { _, destination, _ ->

            if (destination.id == R.id.firstFragment ||
                destination.id == R.id.loginFragment ||
                destination.id == R.id.registerFragment
            ) {

                //drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED)
                navView.menu.removeItem(R.id.firstFragment) //This works

            } else {

                //drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED)
                navView.menu.add(R.id.firstFragment) //This doesn't work
            }
        }

如果您打算在登录时重新添加所有项目,不妨将它们隐藏起来。无论如何,它可能会更快。

这是允许您hide/unhide给定菜单项的解决方案。

代码 navView.menu.add(R.id.firstFragment) 将无法运行,因为 Menu.add(int) 正在查找字符串 ID,而不是布局项 ID。