在 NavigationView 中禁用图标 colorStateList

Disable icon colorStateList in NavigationView

在我今天的应用程序中,我的图标不仅具有单一颜色,而且在某些情况下有两种颜色,具体取决于我应用程序中的数据状态。这意味着我无法在 NavigationView.

中使用默认着色行为

看起来像新 NavigationView,除非我为列表中使用的图标指定 ColorStateList,否则将为我创建一个默认 ColorStateList,它使用我的 colorPrimary 等在我的主题中定义。

我没有办法强制 NavigationView 停止为我的图标着色吗?

Is there no way for me to force NavigationView to stop tinting my icons?

当然有。您可以使用 NavigationView.setItemIconTintList.

以编程方式执行此操作

您可以在 XML 布局中使用 NavigationView.itemIconTint 属性来实现。

以编程方式

yourNavigationView.setItemIconTintList(null);

来自XML

<android.support.design.widget.NavigationView
    ...
    app:itemIconTint="@android:color/black" 
    ... />

结果