3

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

我的主要活动布局包含一个BottomNavigationView带有两个NavHosts。

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

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

有一个属性app:defaultNavHost="true"可以确保您NavHostFragment拦截系统后退按钮,但我希​​望它根据活动图形打开/关闭。我找不到改变它的方法:(

我知道我可以覆盖onBackPressed(),但我正试图找到一种方法让图书馆为我完成这项工作,让它知道哪个图是活动的。

4

1 回答 1

4

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

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

于 2019-01-17T21:33:52.393 回答