24

In meiner App habe ich heute Icons, die nicht nur eine einzelne Farbe haben, sondern in einigen Fällen zwei Farben abhängig vom Datenzustand in meiner App. Das bedeutet, dass ich das Standard-Tönungsverhalten nicht in NavigationView verwenden kann.Disable icon colorStateList in NavigationView

es mit den neuen NavigationView aussieht, wenn ich nicht in der Liste verwendet, um ein ColorStateList für meine Symbole angeben, wird ein Standard ColorStateList wird für mich gemacht werden, was in meinem Thema definiert meine colorPrimary etc verwendet.

Gibt es keine Möglichkeit für mich, NavigationView zu zwingen, mit dem Tönen meiner Symbole aufzuhören?

Antwort

82

Gibt es keine Möglichkeit für mich, NavigationView zu zwingen, meine Icons zu tönen?

Es ist sicher. Sie können dies programmgesteuert mit NavigationView.setItemIconTintList tun.

Und Sie können dies in Ihrem XML Layout mit dem Attribut NavigationView.itemIconTint tun.

Programmatically

yourNavigationView.setItemIconTintList(null); 

Von XML

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

Ergebnisse

results

+5

Das Programmieren war der einzige Weg, um es zum Laufen zu bringen. Ich weiß nicht, warum ich das nicht versucht habe. Ich habe versucht, es auf Null in der XML zu setzen, aber das hat nichts getan. Wie auch immer, danke Kumpel! – tskulbru

+0

Sie müssen auf eine Farbe verweisen, wenn Sie sie in XML anwenden. Zum Beispiel "@android: color/black". Es hat damit zu tun, wie die 'ColorStateList' in' NavigationView' initialisiert wird. – adneal

+1

Ja, das habe ich in den Quellen gesehen. Aber immer noch nicht daran gedacht, es nur durch Code zu tun .. :) – tskulbru