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

时间:2020-07-19 17:01:02

标签: android kotlin navigation android-jetpack

我正在尝试使用自定义的后退导航,而不是使用默认的后退箭头。我要使用取消图标:

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 个答案:

答案 0 :(得分:0)

设置方法后,您可以使用addOnDestinationChangedListener设置自己的图标。

navController.addOnDestinationChangedListener { _, destination, _ ->
   if(destination.id == R.id.xxxx) {
       toolbar.setNavigationIcon(R.drawable.xxxx)
   } else {
       //
   }
}

关于向上图标的颜色,请检查此answer
只需使用colorOnPrimary属性覆盖colorControlNormal中的Toolbarandroid:theme