android - 使用导航组件和 BottomNavigationView 的返回堆栈流问题
问题描述
我正在使用 Android 导航组件。有一个带有 FragmentContainerView(NavHostFragment) 的活动,通过 common_navigation_graph 进行简单的导航流但是在一个片段上有一个嵌套的 NavHostFragment 和 BottomNavigationView。原因 - 我想在片段上有 3 个标签。底部导航配置有自己的 navController 和单独的 navigation_graph
val navController = activity?.findNavController(R.id.navHostViewPagerView)
binding?.bottomNavigation?.setupWithNavController(navController!!)
在每个选项卡上都有一个带有自己的 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() view==null 和 fragment.id==0 上。碎片被破坏
问题是如何保存从 common_navigation_graph 的其他片段返回的嵌套 Tab 片段的导航能力
解决方案
Each tab should hold its own back stack.
推荐阅读
- jquery - jQuery: if XYZ, add class to this AND next element
- reactjs - enzyme wrappers fail jest equality despite producing identical snapshots
- c++ - 添加一个 op tensorflow 调试
- android - 无法调试 React Native android 应用程序 - 窗口类型 2006 的权限被拒绝
- java - Java:如何获取泛型方法的类型类对象?
- c# - c# 将列表分组到新列表中
- php - GMail SMTP 服务器和 PHPMailer:发送成功但未收到
- node.js - 如何使用指定参数存根对象的方法?
- php - 如何使用中间表设置 Laravel 多对多关系,中间表不仅是数据透视表,而且代表模型
- airflow - Airflow 网络服务器也启动了 worker