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