2015-06-26 5 views

Antwort

14

Ja Sie können es tun Ich habe es auch getan.

Zuerst holt die MenuItem, zu dem Sie die Farbe

Menu m = navView.getMenu(); 
MenuItem menuItem = m.findItem(your_menu_id); 

dann spannable es mit Ihrer Farbe

SpannableString s = new SpannableString(menuItem.getTitle()); 
s.setSpan(new ForegroundColorSpan(Color.your_color), 0, s.length(), 0); 
menuItem.setTitle(s); 

das ist anwenden ändern ..

nun im folgenden Code ist für Ihre 2. Lösung, die Textfarbe dynamisch auf Menü ändert, klickt.

navView.setNavigationItemSelectedListener(new 
    NavigationView.OnNavigationItemSelectedListener() { 
     @Override 
     public boolean onNavigationItemSelected(MenuItem menuItem) { 
      SpannableString s = new SpannableString(menuItem.getTitle()); 
      s.setSpan(new ForegroundColorSpan(Color.RED), 0, s.length(), 0); 
      menuItem.setTitle(s); 
      return false; 
     } 
    }); 
+1

JA! Es funktionierte! Vielen Dank! :) –

+1

Sehr hinterhältig! Es sieht so aus, als ob Sie eine vollständige Kontrolle haben, da Sie das Symbol für einen einzelnen Menüeintrag abrufen können. Vielen Dank! –

+1

Das ist Gold! Ich musste zu lange suchen, danke :) – gtRfnkN

0

Soweit ich weiß, ist dies nicht möglich. Ich habe gesucht (wie ich sicher bin), ein Beispiel dafür zu finden, wie man das erreicht, und kann keins finden.

Ich würde wirklich vorschlagen, eine benutzerdefinierte Ansicht zu erstellen, was Sie versuchen zu tun (was nicht sehr detailliert in Ihrer Frage ist, so ist es ein bisschen schwer, eine Alternative vorschlagen). Oder, wenn Sie wirklich etwas verwenden möchten, das vom SDK zur Verfügung gestellt wird, können Sie vielleicht das OptionsMenu verwenden (was die Anpassung einzelner Menüelemente ermöglichen sollte).

EDIT: Es stellt sich heraus, dass es möglich ist, dies ohne eine benutzerdefinierte Ansicht zu tun. Siehe die akzeptierte Antwort von moinkhan für Details.

+0

Hallo, ist es möglich. Siehe die Antwort! :) –

+0

Danke! Ich habe meine Antwort für jeden aktualisiert, der über diesen Thread stolpert. – ryguy

Verwandte Themen