【发布时间】:2021-09-02 16:37:50
【问题描述】:
我的活动中有三个顶级目的地片段:
appBarConfiguration = AppBarConfiguration(
setOf(
R.id.trackerFragment,
R.id.nutrientFragment,
R.id.settingsFragment
),
drawerLayout
)
这意味着所有这些片段都将显示汉堡按钮而不是正常的后退箭头。问题是我的应用程序中有一个“Go to Nutrient”按钮,该按钮导航到 NutrientFragment,这是一个顶级目的地。我希望这个片段在使用抽屉导航时仍然显示汉堡包图标,但在通过“Go to Nutrient”按钮导航时显示正常的后退/向上按钮。
我最初的想法是在导航到NutrientFragment 时传递一个布尔值作为参数,并在onCreateView() 内部,根据布尔值,删除汉堡图标或添加后退按钮。但这似乎有点丑陋和低效,特别是如果将来我添加更多可能有同样问题的目的地。我也不知道如何“删除汉堡包图标并用正常的后退按钮替换”。关于如何实施的任何想法?我找到的所有答案要么在旧的已弃用的 Java 代码中,要么不是我正在寻找的。p>
谢谢。
【问题讨论】:
-
导航组件允许基于
appBarConfiguration显示或隐藏UP按钮;如果您有自定义设计,则需要恢复以使用 android API 对其进行自定义,在您的情况下,例如((requireActivity() as AppCompatActivity).supportActionBar)?.setDisplayHomeAsUpEnabled(boolean) -
不幸的是,这不起作用。汉堡图标仍然显示。
标签: android kotlin navigation-drawer android-architecture-components android-navigation