2015-01-30 32 views
12

Io uso android.support.v7.widget.Toolbar nel mio progetto. Per impostazione predefinita, in tema di luce che ha azione nero icona del menu di overflow, titolo in bianco e nero menu di overflow colore del testo, come quello (non guardare l'icona di navigazione - è su ordinazione):Come modificare il testo del titolo e il colore dei pulsanti SENZA cambiare il colore del testo del menu di overflow dell'azione nella nuova barra degli strumenti?

Default Toolbar look like enter image description here

Ma nella mia app ho bisogno che sia bianco. I set android: textColorPrimary al bianco nei miei stili per la barra degli strumenti:

<style name="Widget.My.Toolbar" parent="Widget.AppCompat.Toolbar"> 
    <item name="theme">@style/ThemeOverlay.My.Toolbar</item> 
</style> 

<style name="ThemeOverlay.My.Toolbar" parent="ThemeOverlay.AppCompat.ActionBar"> 
    <item name="android:textColorPrimary">@color/white</item> 
</style> 

ha cambiato colore del titolo e il pulsante menu di overflow, proprio come avrei voluto, ma è cambiato Azione Owerflow menu di colore elementi di testo troppo: enter image description here

Sembra brutto. Ho anche provato a impostare un colore di titolo a livello di codice con

toolbar.setTitleTextColor(getResources.getColor(R.color.white); 

ma cambia solo il colore titolo, e non cambia tasto menu: enter image description here

Così come posso cambiare il colore per tutto nella barra degli strumenti, ad eccezione di articoli nel menu di overflow di azione?

+4

Una delle domande più frequenti che ho visto da molto tempo! +1 –

risposta

6

Dopo aver impostato il colore del testo per il tuo Toolbar è possibile impostare il colore del testo dei menu con il seguente attributo:

<item name="actionMenuTextColor">@color/white</item> 

Dal momento che si sta utilizzando l'AppCompat Toolbar lo spazio dei nomi di Android non deve essere incluso nel l'attributo, come mostrato sopra.

Tuttavia, sembra che le persone abbiano avuto esperienza mista con questo. Si può anche provare a utilizzare l'attributo itemTextAppearance:

<style name="yourTheme" parent="yourThemeParent"> 
    <!-- Rest of your theme --> 
    <item name="android:itemTextAppearance">@style/menuItemColor</item> 
</style> 

<style name="menuItemColor"> 
    <item name="android:textColor">@android:color/black</item> 
</style> 

ho scoperto che la prima soluzione ha funzionato per me, quando ho inserito in modo esplicito un Toolbar nel mio layout, ma non se ho usato getSupportActionBar() per ottenere il bar default inclusi in un dato tema. Tuttavia, in questo scenario, la seconda soluzione ha funzionato per me.

+0

Impostazione actionMenuTextColor non ha fatto nulla per me, ma la seconda soluzione lo ha fatto! Grazie!!! – udenfox

+1

niente funziona per me – moDev

Problemi correlati