Jetpack导航:ActionBar后退箭头仅适用于特定片段

时间:2018-07-28 09:47:22

标签: android android-fragments architecture navigation android-jetpack

我有一个带有底部导航的应用,它是列表之间的主要导航(如Projects,Tags等),所有这些片段都应等效,即顶层Fragments。导航正常运行,已经设置好了。

    bottom_navigation.let { bottomNavigationView ->
        NavigationUI.setupWithNavController(bottomNavigationView, navController)
    } 

从不同的顶层片段,我想导航到较低层的片段,这些片段应该在操作栏中带有向后箭头。我可以使用以下代码将导航与操作栏相连。

    NavigationUI.setupActionBarWithNavController(this, navController)

问题在于,在这种情况下,所有片段都会返回一个后退箭头,所有顶层片段也都将返回(除了我在导航编辑器中标记为起始目标的片段之外)。是否可以将更多片段标记为起始片段,或者在导航中将某些片段标记为不获得此后退箭头?

1 个答案:

答案 0 :(得分:0)

是的,您可以通过以下方式实现此目标:


val appBarConfiguration = AppBarConfiguration(setOf(R.id.top_level_fragment1, R.id.top_level_fragment2, R.id.top_level_fragment3))

setupActionBarWithNavController(navController, appBarConfiguration)

通过用AppBarConfiguration传递目的地(片段)的ID列表,您的navController会将其视为顶级(无后退箭头)。

这里是link to the relevant android developers documentation