5

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

在此处输入图像描述

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

但是,当我运行该应用程序时,该图标永远不会显示。相反,它以黑色显示默认的后退箭头: 在此处输入图像描述

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

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

如何用我的自定义图标替换默认箭头?另外 - 为什么默认箭头是黑色的?这是主题问题吗?

4

1 回答 1

3

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

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

关于向上图标的颜色检查这个答案。只需在您的using属性中
覆盖 thecolorOnPrimary或 the即可。colorControlNormalToolbarandroid:theme

于 2020-07-19T17:15:09.410 回答