一种解决方法是在MainActivity.xml中添加以下属性以确保Fragment不会被销毁:
app:navGraph="@navigation/nav_graph"
app:defaultNavHost="true"
接下来,我们需要在NavHostFragment中添加以下代码来确保Fragment状态得到保存:
val navController = findNavController(R.id.nav_host_fragment)
val inflater = navController.navInflater
val graph = inflater.inflate(R.navigation.nav_graph)
navController.graph = graph
最后,我们需要通过设置NavigationView的menu属性来指定菜单项,并为每个菜单项指定destination:
这样就可以确保Fragment状态在使用Navigation组件和BottomNavigationView时得到了正确的保存。
上一篇:AndroidNavigation组件一次性跳过几个步骤在graph中的问题
下一篇:AndroidNavigation组件在navigateUp时无法触发EditText的addTextChangedListener