带有底部导航栏的导航组件

时间:2019-07-21 07:59:47

标签: android bottomnavigationview android-architecture-navigation

我正在使用Google样本提供的导航扩展类,在其中我可以为每个底部导航选项卡维护多个backstack。现在我面临一个问题,我想从另一个导航控制器中驻留的另一个片段移至特定片段。
例如。
我有3个底部标签,结构是这样的。

enter image description here

f9 f10 片段位于嵌套图中并且可以从所有三个导航控制器访问的地方。

Tab1是我第一次打开应用程序时的默认选项卡。然后的场景是,我转到 f1-> f2-> f3-f4 ,然后移至tab2。我要转到 f5-> f6-> f9 的位置,现在我想从 f9 tab1 中打开 f3 tab2

我用于以编程方式切换选项卡并回退到 tab1 f3 的代码是:

findNavController(this).popBackStack(); // f9 fragment is popped out
((AppControllerActivity) requireActivity()).bottomNavigationView.setSelectedItemId(R.id.Tab1);
((AppControllerActivity) requireActivity()).getCurrentNavController.getValue().popBackStack(R.id.f3, false);

,然后在currentNavController的appControllerActivity中有一个Livedata侦听器。观察到的变化发生在导航控制器和底部导航栏中。

除此行外,一切正常

((AppControllerActivity) requireActivity()).getCurrentNavController.getValue().popBackStack(R.id.f3, false);

此行执行,但是什么也没有发生。
任何帮助将不胜感激。

0 个答案:

没有答案