欢迎来到第二个关于导航的 MAD Skill 系列的另一篇文章!本文我们将介绍一个呼声很高的功能,即导航 (Navigation) 对多返回栈的支持。如果您更倾向于视频的形式,请查看以下视频内容:
概述
支持多返回栈
仓库
https://github.com/android/architecture-components-samples/tree/master/NavigationAdvancedSample
NavigationExtensions
https://github.com/android/architecture-components-samples/blob/8f4936b34ec84f7f058fba9732b8692e97c65d8f/NavigationAdvancedSample/app/src/main/java/com/example/android/navigationadvancedsample/NavigationExtensions.kt
class MainActivity : AppCompatActivity() {private lateinit var navController: NavControllerprivate lateinit var appBarConfiguration: AppBarConfigurationoverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)val navHostFragment = supportFragmentManager.findFragmentById(R.id.nav_host_container) as NavHostFragmentnavController = navHostFragment.navController// 使用 navController 设置 bottomNavigationViewval bottomNavigationView = findViewById<BottomNavigationView>(R.id.bottom_nav)bottomNavigationView.setupWithNavController(navController)// 使用 navController 设置 ActionBar 以及 3 个一级目的地页面appBarConfiguration = AppBarConfiguration(setOf(R.id.titleScreen, R.id.leaderboard, R.id.register))val toolbar = findViewById<Toolbar>(R.id.toolbar)setSupportActionBar(toolbar)toolbar.setupWithNavController(navController, appBarConfiguration)}override fun onSupportNavigateUp(): Boolean {return navController.navigateUp(appBarConfiguration)}}
<navigationxmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"android:id="@+id/nav_graph"app:startDestination="@+id/home"><include app:graph="@navigation/home"/><include app:graph="@navigation/list"/><include app:graph="@navigation/form"/></navigation>
// fragment 最新版本 https://developer.android.google.cn/jetpack/androidx/releases/fragment?hl=en// navigation 最新版本 https://developer.android.google.cn/jetpack/androidx/releases/navigation?hl=enversions.fragment = "1.4.0-alphaXXX"versions.navigation = "2.4.0-alphaXXX"
小结
欢迎您通过下方二维码向我们提交反馈,或分享您喜欢的内容、发现的问题。您的反馈对我们非常重要,感谢您的支持!
推荐阅读
点击屏末 | 阅读原文 | 即刻了解多返回栈更多信息