android - 使用带有两个导航图的 Android Navigation 处理后退按钮

标签 android android-navigation android-bottom-nav-view

我创建了一个小示例应用程序来测试 android 导航库。一般的想法是我想要两个带有自己的导航图的选项卡。

我的主要 Activity 布局包含一个 BottomNavigationView 和两个 NavHost

ButtonNavigationView 点击监听器负责显示一个 NavHost 或另一个,并使用选定的 Controller 调用 NavigationUI.setupActionBarWithNavController 以更新相应的工具栏。向上导航工作正常。

我现在面临的问题是后退按钮。

有一个属性 app:defaultNavHost="true" 确保你的 NavHostFragment 拦截系统后退按钮,但我希​​望它根据 Activity 图。我找不到改变它的方法:(

我知道我可以重写 onBackPressed() 但我正在尝试为库找到一种方法来为我完成这项工作,让它知道哪个图是 Activity 的。

最佳答案

根据 NavHostFragment source , app:defaultNavHost="true" 所做的就是调用 setPrimaryNavigationFragment() ,这就是 FragmentManager 知道将按钮事件发送回哪个子 Fragment 的方式。

因此,当切换到新的 Fragment 时,您可以将 setPrimaryNavigationFragment() 添加到您的 FragmentTransaction 以获得相同的行为。

关于android - 使用带有两个导航图的 Android Navigation 处理后退按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54244463/

相关文章:

android - 在带有 Eclipse 的 android 上使用 gdb 调试 native 代码 (C++)。是否可以?

android - 回到上一个在 android 中有对话框的 Activity

android - 如何在使用 Android 导航图时显示 HomeAsUp

android - 为什么在导航中切换屏幕时无法获取 null 作为参数?

android - 如何从底部导航 View 更改特定图标图像

Android Studio 菜单项点击不起作用

android - 如何使用马拉雅拉姆语 ASCII 字体?

android - 拥有一个 Activity 实例

android - 隐藏子屏幕/fragment 的android底部导航 View

android - 为什么内部存储中的 pdf 未在 Web View 中显示