Отключить значок colorStateList в NavigationView

В моем приложении сегодня есть значки, которые не только имеют один цвет, но в некоторых случаях два цвета в зависимости от состояния данных в моем приложении. Это означает, что я не могу использовать поведение по умолчанию по умолчанию в NavigationView.

Похоже, что с новым NavigationView, если я не укажу ColorStateList для моих значков, используемых в списке, для меня будет создан по умолчанию ColorStateList, который использует мой colorPrimary и т.д., определенный в моей теме.

Нет ли способа заставить NavigationView перестать подкрашивать мои значки?

Ответ 1

Нет ли способа заставить NavigationView перестать тонизировать мои иконки?

Конечно. Вы можете сделать это программно, используя NavigationView.setItemIconTintList.

И вы можете сделать это в макете XML, используя атрибут NavigationView.itemIconTint.

Программного

yourNavigationView.setItemIconTintList(null);

От XML

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

Результаты

results