Android ActionBar MenuItem LowerCase

Voglio rendere il titolo MenuItem in ActionBar su LowerCase.

il mio menu.xml

  

Su ActionBar vede “REGISTER” e “UNREGISTER”, ma voglio che veda “Register” e “Unregister”.

È ansible rendere la prima lettera in alto e le lettere successive in basso a MenuItem? E come posso farlo?

Soluzione per l’implementazione nativa di ActionBar:

 < ?xml version="1.0" encoding="utf-8"?>     

Se si utilizza ActionBarSherlock ci sono due approcci diversi:

1) Crea risorsa booleana abs__config_actionMenuItemAllCaps e abs__config_actionMenuItemAllCaps su false :

 < ?xml version="1.0" encoding="utf-8"?>  false  

2) O creare un tema con azione overridenMenuTextAppearance e usarlo in AndroidManifest.xml :

 < ?xml version="1.0" encoding="utf-8"?>     

NOTA BENE : c’è un bug in ActionBarSherlock che forza MenuItem a essere maiuscolo su pre-ICS ( https://github.com/JakeWharton/ActionBarSherlock/issues/969 ). Ho inviato la patch ma al momento non è unita. Per ora puoi usare la mia forchetta: https://github.com/alexander-mironov/ActionBarSherlock/tree/dev , aggiornerò questa risposta quando il mio codice verrà unito nel repository principale.

AGGIORNAMENTO: la mia correzione è stata unita al repository principale di ActionBarSherlock.

Aggiungi quanto segue a uno dei tuoi valori file xml –

 false 

Solo per completare la risposta, se stai usando AppCompat lo stile genitore è:

  

Ho provato alcune delle altre risposte qui ma senza fortuna (non sto usando la barra delle azioni di sherlock). Come menzionato nei commenti, nelle nuove librerie di supporto, le soluzioni di cui sopra non sembrano funzionare. Per risolvere questo problema, ho aggiunto il mio actionLayout agli elementi del menu.

  

Poi nel mio codice ho fatto qualcosa di simile.

 final MenuItem done = menu.findItem(R.id.done); done.setActionView(R.layout.menu_item_kingfisher_text_view); TextView doneTextView = (TextView) done.getActionView(); 

Quindi puoi fare ciò che vuoi con la visualizzazione del testo ed evitare che il testo sia tutto maiuscolo. Questo non è assolutamente l’ideale, ma se hai bisogno di una soluzione per questo problema, questo funziona.

Per rendere il testo del menu in minuscolo come “MENU VOCE” su “Voce del menu” ecco la mia soluzione.

In res >> values ​​>> styles.xml aggiungi quanto segue:

  

Dopo puoi chiamarlo sulla tua AppTema:

  

Spero che aiuti. 🙂

Dal codice sorgente in android.support.v7.internal.view.menu.ListMenuItemView

 //Set text appearance in constructor from style ... mTextAppearance = a.getResourceId(R.styleable.MenuView_android_itemTextAppearance, -1); ... //Apply text appearance to view item mTitleView = (TextView) findViewById(R.id.title); if (mTextAppearance != -1) { mTitleView.setTextAppearance(mTextAppearanceContext, mTextAppearance); } 

Nel progetto: crea un tema popup e applicalo alla creazione di popup per alcuni popup personalizzati se è pianificato di utilizzare questo aspetto su tutta l’applicazione per poi inserirlo nel tema principale dell’applicazione.

  ... Context context = new ContextThemeWrapper(getActivity(), R.style.PopupTheme); MenuPopupHelper optionsMenu = new MenuPopupHelper(context, menuBuilder, anchorView); ...