我正在使用新的导航组件库。我有一个抽屉导航,工作得很好。
如果我的用户登录,我想更改抽屉导航的菜单。具体来说,我想将 fragment 中的“登录”项更改为“注销”。
我在网上找到的所有解决方案都没有使用导航组件。因此,他们推荐了这样的东西:
// Get the navigationView and swap the menu
NavigationView navigationView = view.findViewById(R.id.nav_view);
navigationView.getMenu().clear();
navigationView.inflateMenu(R.menu.activity_main_drawer_logged_in);
但是,这在我的情况下似乎不起作用(我无法从 fragment 中获取 navigationView)。如何使用导航组件实现这一目标?
最佳答案
您可以通过界面从Fragment访问Activity:
- 创建并接口(interface)
LoginSuccessListener
- 在您的
Activity
中实现此功能 - 内部 fragment 在
onAttach
内接收此监听器 - 根据需要使用它来更新
导航菜单
关于java - 导航组件 : Switch Menu of Navigation Drawer (for logged in users),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58473262/