java - 导航组件 : Switch Menu of Navigation Drawer (for logged in users)

标签 java android navigation android-architecture-navigation

我正在使用新的导航组件库。我有一个抽屉导航,工作得很好。

如果我的用户登录,我想更改抽屉导航的菜单。具体来说,我想将 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:

  1. 创建并接口(interface) LoginSuccessListener
  2. 在您的Activity中实现此功能
  3. 内部 fragment 在onAttach内接收此监听器
  4. 根据需要使用它来更新导航菜单

关于java - 导航组件 : Switch Menu of Navigation Drawer (for logged in users),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58473262/

相关文章:

java - 如何在java中读取注册表

java - 像谷歌应用引擎上的 pluto 或 jetspeed 这样的 Portlet 容器?

java - 在 Android 上获取可用的蓝牙设备列表

html - 无序列表导航html结构

java - 在 JSF 中从请求 ManagedBeans 传递数据

java - 图像无法在外部 Web 浏览器 (Firefox) 中加载

android - 如何在 Android 上使用 blender

android - 动态应用样式

android - 检查导航图是否在 backstack 上

iphone - 左右扫视 View