2015-06-26 14 views

risposta

14

Sì, lo puoi fare L'ho anche fatto.

primo prendere il MenuItem a cui si desidera cambiare il colore

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

quindi applicare spannable con il colore

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

questo è tutto ..

seguito il codice è per la tua seconda soluzione cambiando dinamicamente il colore del testo sul menu click ..

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

SÌ! Ha funzionato! Grazie! :) –

+1

Molto subdolo! Sembra una completa svista visto che puoi afferrare l'icona disegnabile per una singola voce di menu. Grazie! –

+1

Questo è oro! Ho cercato troppo a lungo per questo, grazie :) – gtRfnkN

0

Per quanto ne so, questo non è possibile. Ho cercato (come sono sicuro che tu abbia) di provare a trovare un esempio di come ottenerlo e di non trovarne uno.

Vorrei davvero suggerire di creare una vista personalizzata per fare quello che stai cercando di fare (che non è molto ben dettagliato nella tua domanda, quindi è un po 'difficile suggerire un'alternativa). Oppure, se vuoi davvero utilizzare qualcosa fornito dall'SDK, puoi usare lo OptionsMenu (che dovrebbe consentire la personalizzazione delle singole voci di menu).

MODIFICA: Si scopre che è possibile farlo senza una visualizzazione personalizzata. Vedi la risposta accettata da moinkhan per i dettagli.

+0

Ciao, è possibile. guarda la risposta! :) –

+0

Grazie! Ho aggiornato la mia risposta per chiunque si imbatta in questo thread. – ryguy

Problemi correlati