Deaktivieren Sie das Symbol colorStateList in NavigationView

Lesezeit: 2 Minuten

Deaktivieren Sie das Symbol colorStateList in NavigationView
tskulbru

In meiner App habe ich heute Icons die nicht nur eine Farbe haben, sondern teilweise zwei Farben je nach Datenstand in meiner App. Dies bedeutet, dass ich das standardmäßige Tönungsverhalten in nicht verwenden kann NavigationView.

Es sieht aus wie mit dem neuen NavigationView, es sei denn, ich gebe a . an ColorStateList für meine in der Liste verwendeten Symbole eine Standardeinstellung ColorStateList wird für mich gemacht, was meine nutzt colorPrimary usw. in meinem Thema definiert.

Gibt es keine Möglichkeit, NavigationView zu zwingen, meine Symbole nicht mehr zu färben?

Gibt es keine Möglichkeit, NavigationView zu zwingen, meine Symbole nicht mehr zu färben?

Gibt es sicher. Sie können dies programmgesteuert tun mit NavigationView.setItemIconTintList.

Und das kannst du in deinem XML Layout mit dem NavigationView.itemIconTint Attribut.

Programmatisch

yourNavigationView.setItemIconTintList(null);

Von XML

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

Ergebnisse

Ergebnisse

  • Die programmgesteuerte Einstellung war die einzige Möglichkeit, es zum Laufen zu bringen. Weiß nicht warum ich das nicht probiert habe. Ich habe versucht, es in der XML auf null zu setzen, aber das hat nichts gebracht. Trotzdem danke Kumpel!

    – tskulbru

    4. Juni ’15 um 8:09

  • 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 wird initialisiert in NavigationView.

    – Adneal

    4. Juni ’15 um 11:54


  • Ja, das habe ich in den Quellen gesehen. Aber ich habe immer noch nicht daran gedacht, es einfach per Code zu machen.. 🙂

    – tskulbru

    4. Juni ’15 um 12:03

  • Schön! Ich war über das gleiche verärgert, habe aber nicht versucht, es im Code auf null zu setzen. Danke, dass Sie uns darauf aufmerksam gemacht haben. Sehr geschätzt!

    – KMLong

    4. Juni ’15 um 14:47

  • Der richtige Weg wäre app:itemIconTint="@null" in XML, aber NavigationViewDer Konstruktor sucht nach hasValue was diese Möglichkeit ausschließt. Einstellung black in XML ist nicht dasselbe wie Einstellung null programmatisch. Wenn das Symbol in der Mitte nicht transparent ist, wird es zu einem schwarzen Klecks.

    – TWiStErRob

    29. März ’16 um 16:25


.

242090cookie-checkDeaktivieren Sie das Symbol colorStateList in NavigationView

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy