2015-01-30 9 views
12

Ich benutze android.support.v7.widget.Toolbar in meinem Projekt. Standardmäßig in Licht Thema es schwarz Aktion Überlauf Menü-Symbol, schwarz Titel und schwarz Überlaufmenü Textfarbe hat, wie die (nicht auf dem Navigationssymbol aussehen - es ist custom):Wie Titel Text und Schaltflächen Farbe ändern OHNE Änderung Aktion Überlaufmenü Textfarbe in neue Toolbar?

Default Toolbar look like enter image description here

Aber In meiner App muss ich weiß sein. Ich habe android: textColorPrimary auf weiß in meiner Stile für die Symbolleiste:

<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> 

Es veränderte Farbe des Titels und der Überlauf Menü-Taste genauso wie ich wollte, aber es verändert Aktion owerflow Menüpunkte Textfarbe zu: enter image description here

Es sieht hässlich aus. ich sogar eine Titelfarbe programmatisch mit

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

aber es ändert sich nur Titel Farbe und keine Änderungen Menü-Taste eingestellt versucht: enter image description here

So wie kann ich Farbe für alles in der Symbolleiste ändern, außer Artikel in Aktion Überlaufmenü?

+4

Eine der am häufigsten gestellten Fragen, die ich seit langem gesehen habe! +1 –

Antwort

6

Nachdem Sie setzen die Textfarbe für Ihre Toolbar Sie die Textfarbe des Menüs mit dem folgende Attribute festlegen:

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

Da Sie die AppCompat Toolbar der Android-Namespace verwenden muß, nicht einbezogen das Attribut, wie oben gezeigt.

Es scheint jedoch, Menschen haben gemischte Erfahrungen damit. Sie können auch versuchen, das itemTextAppearance Attribut:

<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> 

Ich fand, dass die erste Lösung für mich gearbeitet, wenn ich explizit ein Toolbar in meinem Layout enthalten, aber nicht, wenn ich getSupportActionBar() verwenden die Standard-Bar, die in einem bestimmten zu bekommen Thema. In diesem Szenario funktionierte die zweite Lösung jedoch für mich.

+0

Einstellung actionMenuTextColor hat nichts für mich getan, aber eine zweite Lösung hat es geschafft! Vielen Dank!!! – udenfox

+1

nichts funktioniert für mich – moDev

Verwandte Themen