【发布时间】:2023-02-19 05:16:28
【问题描述】:
所以我有单个活动应用程序,在活动布局中放置了单个工具栏。
如果还没有片段被膨胀,下一个代码只能改变导航图标按钮的颜色
binding.toolbar.setNavigationIconTint(ContextCompat.getColor(this, R.color.white))
但是一旦导航组件打开带有箭头后退按钮的任何片段(如果它可以返回到上一个片段),后退按钮的箭头图标的颜色就会不同(它是黑色的)
即使是以下代码也无助于更改后退按钮箭头图标的颜色:
override fun onDestinationChanged(
controller: NavController,
destination: NavDestination,
arguments: Bundle?
) {
binding.toolbar.setNavigationIconTint(ContextCompat.getColor(this, R.color.white))
}
还是黑箭头
为什么在使用带有 NavigationComponent 的片段时我不能更改它,为什么它设置为某种背景色(默认一种或什么)?
导航图标由NavigationComponent 设置。如果当前片段是为AppBarConfiguration(fragments)设置的片段之一,它可以是返回箭头或者菜单(汉堡包)图标
当我在 onDestinationChanged 中这样设置时,它会被更改,但在这里我手动设置图标和颜色,如果我应该设置箭头或菜单图标,我必须添加逻辑,所以它使一切复杂化,它是样板代码,因为NavigationCompopnent 可以自己处理:
binding.toolbar.setNavigationIcon(R.drawable.ic_arrow) // or menu (need to add logic which icon should be used)
binding.toolbar.setNavigationIconTint(ContextCompat.getColor(this, R.color.white))
我想要的只是改变导航图标的颜色而不是图标本身。
我的应用程序只能根据当前片段具有不同的工具栏样式(透明或纯色)。这就是为什么我想动态更改图标颜色
【问题讨论】:
标签: android android-toolbar android-architecture-navigation android-navigation