gpt4 book ai didi

android - 是否可以更改导航组件中的向上按钮图标?

转载 作者:行者123 更新时间:2023-12-04 11:09:24 25 4
gpt4 key购买 nike

我想更改与导航组件一起使用的 ActionBar 中的向上按钮图标。我尝试了几种选择,例如:

supportActionBar?.setHomeAsUpIndicator(R.drawable.ic_arrow_left_blue_24dp)

MainAcitivty或者
app:navigationIcon="@drawable/ic_arrow_left_blue_24dp"

Toolbar .xml 文件,但似乎没有任何效果。

我有一个非常标准的设置
setSupportActionBar(appToolbar.toolbar)
setupActionBarWithNavController(this, navController)

调用 MainActivity:onCreate方法。

我希望
supportActionBar?.setHomeAsUpIndicator(R.drawable.ic_arrow_left_blue_24dp)

会起作用,因为例如禁用 ActionBar 的标题通过调用:
supportActionBar?.setDisplayShowTitleEnabled(false)

按预期工作,标题未设置为 Fragment导航时命名。

更重要的是,我调查了一下,在 ActionBarOnDestinationChangedListener有电话到 setNavigationIcon将图标设置为 DrawerArrowDrawable ,这有点奇怪,因为我没有使用 Drawer在我的设置中。

也改为:
setupWithNavController(toolbar, navController)

不工作,因为 ToolbarOnDestinationChangedListener也使用相同的 DrawerArrowDrawable .

最佳答案

我找到了答案。我检查了导航组件的问题跟踪器,现在看来如果没有解决方法就不可能更改它:

https://issuetracker.google.com/u/1/issues/121078028

很高兴它仍然是可能的,我们只需要实现 OnDestinationChangedListener并在那里更改图标,因为它在 setNavigationIcon 之后被调用在 AbstractAppBarOnDestinationChangedListener .这是一个代码:

navController.addOnDestinationChangedListener { _, _, _ ->
supportActionBar?.setHomeAsUpIndicator(R.drawable.ic_arrow_left_blue_24dp)
}

您甚至可以为不同的目的地设置不同的图标。

这是临时解决方案,因为此功能尚不存在。我正在使用 1.0.0-alpha09导航组件的版本。

关于android - 是否可以更改导航组件中的向上按钮图标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54234481/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com