Disable icon colorStateList in NavigationView

tskulbru picture tskulbru · Jun 3, 2015 · Viewed 18.7k times · Source

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?

Answer

adneal picture adneal · Jun 4, 2015

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