使用 NavigationComponent 和 BottomNavigationView 隐藏工具栏后退箭头

rai*_*zed 4 android android-navigation android-toolbar android-jetpack android-jetpack-navigation

我正在实现 NavigationComponent 和一个 BottomNavigationView,我注意到工具栏中显示了所有片段目的地的后退箭头,但startDestination在我的导航图中指定为 的除外。

我能够找到的此实现的所有示例都显示出类似的行为。在我看来,为 BottomNavigationView 的每个相关片段隐藏后退箭头似乎是一种更自然的设计,(点击工具栏中的后退箭头从选项卡 2 导航到选项卡 1 对我来说感觉很奇怪,我以前从未见过这种情况) .

有关示例以及我希望实现的目标,请参见下图。有什么办法可以做到这一点吗?在此处输入图片说明

cor*_*her 21

如果您使用的是AppBarConfiguration应该看起来像这样。

val appBarConfiguration = AppBarConfiguration(
            setOf(
                R.id.homeFragment,
                R.id.dashboardFragment,
                R.id.notificationsFragment
            )
        )

setupActionBarWithNavController(navController!!, appBarConfiguration!!)
Run Code Online (Sandbox Code Playgroud)

这意味着您的所有片段都是顶级目的地。

注意,当您回击时,您将退出应用程序(或者如果配置为第一个片段,BottomSheet例如您会得到此行为)。所以如果你需要另一个案例,你应该onBackPressed为每个片段配置


Yos*_*ssi 6

这样做在kotlin

    navController.addOnDestinationChangedListener { _, destination, _ ->
        if (destination.id == R.id.searchFragment) {
            binding.toolbar.navigationIcon = null
        } else {
        }
    }
Run Code Online (Sandbox Code Playgroud)