自定义导航图标未显示 // Jetpack Navigation

5

我正在尝试使用自定义的返回导航,而不是使用默认的返回箭头。 我想使用一个取消图标:

enter image description here

在我的XML文件中使用app:navigationIcon="@drawable/ic_cancel_white_24dp"

然而,当我运行应用程序时,图标从未显示。 相反,它显示了黑色的默认返回箭头: enter image description here

我正在使用NAV控制器和AppBarConfiguration来设置工具栏(因为每个片段的工具栏样式都不同):

private fun setUpActionBar() {
   val navController = findNavController()
   val appBarConfiguration = AppBarConfiguration(navController.graph)
   binding.toolbar.setupWithNavController(navController, appBarConfiguration)
   binding.toolbar.inflateMenu(R.menu.menu)
}

如何用自定义图标替换默认箭头?此外,为什么默认箭头是黑色的?这是一个主题问题吗?
1个回答

4
你可以使用 addOnDestinationChangedListener 在设置方法后自定义图标。
navController.addOnDestinationChangedListener { _, destination, _ ->
   if(destination.id == R.id.xxxx) {
       toolbar.setNavigationIcon(R.drawable.xxxx)
   } else {
       //
   }
}

关于上方图标颜色,请参考此回答。只需使用android:theme属性覆盖ToolbarcolorOnPrimarycolorControlNormal即可。

1
谢谢,这个方法有效,我已经努力一个月来解决这个问题了。 - Jadu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接