Android 喷气背包导航中的后向处理
我正在将Android 喷气背包导航中的后向处理,android,android-jetpack,android-jetpack-navigation,Android,Android Jetpack,Android Jetpack Navigation,我正在将BottomNavigationView与Jetpack导航一起使用。我还将所有片段设置为顶级目的地 val host : NavHostFragment = supportFragmentManager .findFragmentById(R.id.nav_host_fragment) as NavHostFragment? ?: return val navController = host.navController val
BottomNavigationView
与Jetpack导航一起使用。我还将所有片段设置为顶级目的地
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)
在第二个底部导航菜单项上,有一个我正在使用的TabLayout
库片段。有一个与LibraryFragment
内的选项卡相对应的LibraryFoldersFragment
LibraryFoldersFragment
包含一个RecyclerView
。单击RecyclerView
项,LibraryFilesFragment
将替换LibraryFoldersFragment
val fragment = LibraryFilesFragment.newInstance(item)
childFragmentManager.beginTransaction().addToBackStack(null).replace(R.id.frameLayout, fragment)
.commit()
问题是,在按下
LibraryFilesFragment
应用程序中的后退按钮时,会直接导航到第一个底部导航菜单项。但我希望它导航到LibraryFoldersFragment
,因为您使用的是Jetpack中的导航组件,而不是自己提交片段事务。创建一个导航xml,用于将LibraryFoldersFragment
声明为LibraryFilesFragment
导航。在recyclerView项上使用findNavController().navigate()
单击导航。
val fragment = LibraryFilesFragment.newInstance(item)
childFragmentManager.beginTransaction().addToBackStack(null).replace(R.id.frameLayout, fragment)
.commit()
使用NavController设置bottomNavView,并创建不同所需nav xml的图形
您使用的是
ViewPager2
(它完全取代了ViewPager
)?@ianhanniballake我使用的是ViewPager2
。我还上传了我的应用程序的截图。但我正在使用TabLayout
。根据这个答案,您不应该将表格布局
与Jetpack导航一起使用。我还上传了我的应用程序的屏幕截图。@ianhanniballake在ViewPager2中有任何更改吗?