Home » Android » android – Disable icon colorStateList in NavigationView

android – Disable icon colorStateList in NavigationView

Posted by: admin April 23, 2020 Leave a comment

Questions:

In my app today I have icons which doesn’t just have a single color, but in some cases two colors depending on the data state in my app. This means I can’t use the default tinting behavior in NavigationView.

It looks like with the new NavigationView, unless I specify a ColorStateList for my icons used in the list, a default ColorStateList will be made for me which uses my colorPrimary etc defined in my theme.

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

How to&Answers:

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

There sure is. You can do so programmatically using NavigationView.setItemIconTintList.

And you can do so in your XML layout by using the NavigationView.itemIconTint attribute.

Programmatically

yourNavigationView.setItemIconTintList(null);

From XML

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

Results

results