![](/img/trans.png)
[英]Kotlin Android Jetpack Navigation between Fragments in backstack
[英]Handling backstack in jetpack navigation
我正在將BottomNavigationView
與Jetpack Navigation 一起使用。 我還將所有 Fragment 設置為頂級目的地。
val host : NavHostFragment = supportFragmentManager
.findFragmentById(R.id.nav_host_fragment) as NavHostFragment? ?: return
val navController = host.navController
val appBarConfig = AppBarConfiguration(topLevelDestinationIds = setOf(R.id.library_fragment,R.id.account_fragment,R.id.calender_fragment,R.id.home_fragment,R.id.notice_fragment))
val bottomNavView = binding.bottomNavView
setSupportActionBar(binding.toolbar)
setupActionBarWithNavController(navController,appBarConfig)
bottomNavView.setupWithNavController(navController)
關於第二個底部的導航菜單項有LibraryFragment
在我使用TabLayout
。 有LibraryFoldersFragment
對應的選項卡內LibraryFragment
。 LibraryFoldersFragment
包含一個RecyclerView
。 單擊RecyclerView
項時, LibraryFilesFragment
將替換LibraryFoldersFragment
。
val fragment = LibraryFilesFragment.newInstance(item)
childFragmentManager.beginTransaction().addToBackStack(null).replace(R.id.frameLayout, fragment)
.commit()
問題是在LibraryFilesFragment
應用程序中按下后退按鈕會直接導航到第一個底部導航菜單項。 但我希望它導航到LibraryFoldersFragment
。
由於您使用的是 Jetpack 的 Navigation 組件,而不是自己提交片段事務。 創建一個導航 xml,用於將您的LibraryFoldersFragment
聲明為LibraryFilesFragment
導航。 在 recyclerView 項目上使用findNavController().navigate()
點擊導航。 使用 NavController 設置 bottomNavView,並創建不同的所需導航 xml 的 GraphId。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.