将最新的导航组件与 一起使用BottomNavigationView,NavController现在默认保存和恢复选项卡的状态:
作为此更改的一部分,onNavDestinationSelected()、BottomNavigationView.setupWithNavController() 和 NavigationView.setupWithNavController() 的 NavigationUI 方法现在会自动保存和恢复弹出目的地的状态,从而无需更改任何代码即可支持多个返回堆栈。当使用带有片段的导航时,这是与多个返回堆栈集成的推荐方法。
这很棒!现在,切换选项卡将为您提供最后查看的堆栈。
但是,如果用户重新选择一个选项卡,假设他们已经离开Home -> Detail Page A -> Detail Page B,然后他们选择Home希望返回到默认视图的选项卡,他们仍然会看到Detail Page B。
似乎讨论的一部分是处理问题跟踪器中提到的“重新选择选项卡”行为,但我无法找出实现此目的的推荐方法。
NavigationAdvancedSample中包含的所有内容是:
val bottomNavigationView = findViewById<BottomNavigationView>(R.id.bottom_nav)
bottomNavigationView.setupWithNavController(navController)
// Setup the ActionBar with navController and 3 top level destinations
appBarConfiguration = AppBarConfiguration(
setOf(R.id.titleScreen, R.id.leaderboard, R.id.register)
)
setupActionBarWithNavController(navController, appBarConfiguration)
Run Code Online (Sandbox Code Playgroud)
这只是恢复之前的状态,如发行说明中所述。
我们如何检查是否再次点击导航栏项目并清除后堆栈?
android android-navigation bottomnavigationview android-bottomnav android-architecture-navigation