使用导航组件和 BottomNavigationView 的返回堆栈流问题

时间:2021-01-22 11:33:27

标签: android android-fragments bottomnavigationview android-architecture-navigation fragment-backstack

我正在使用 Android 导航组件。 FragmentContainerView(NavHostFragment) 有一个活动,通过 common_navigation_graph 具有简单的导航流程 但是在一个片段上有一个嵌套的 NavHostFragment 和 BottomNavigationView。原因 - 我想在片段上有 3 个标签。底部导航配置有自己的 navController 和单独的 navigation_graph

val navController = activity?.findNavController(R.id.navHostViewPagerView)
binding?.bottomNavigation?.setupWithNavController(navController!!)

在每个 Tab 上还有一个嵌套的片段,带有自己的 FragmentContainerView 和它自己的小 tab_navigation_graph 导航方案看起来: [在此处输入图片说明][1]
[1]:https://i.stack.imgur.com/gmXOY.png

总的来说,它工作得很好。标签之间的导航,在某些选定的标签中导航效果很好,返回堆栈效果很好

override fun handleOnBackPressed() {    
    view?.findNavController()?.popBackStack()
}

但是由于从 common_navigation_graph(图片上的 SomeNextFragment) 导航到下一个片段,backStack 流将被破坏。 我将能够使用选项卡返回片段,但选项卡中嵌套片段的 backStack 流将不起作用。只显示最后一个片段(Tab1.2) 蓝色箭头过渡无效。

在 handleOnBackPressed() 视图==null 和 fragment.id==0。片段被销毁

问题是如何保存从common_navigation_graph的其他fragmnet返回时浏览嵌套Tab片段的能力

1 个答案:

答案 0 :(得分:0)