2015-03-17 33 views
13

Sto usando la barra degli strumenti per Android. Voglio solo cambiare il colore di sfondo del menu di overflow. Ma non sta cambiando.Colore sfondo menu opzioni barra degli strumenti

Style xml

<style name="MyDarkToolbarStyle" parent="Widget.AppCompat.Toolbar"> 
    <item name="popupTheme">@style/PopupMenuStyle</item> 
    <item name="theme">@style/ThemeOverlay.AppCompat.Dark.ActionBar</item> 
</style> 

<style name="PopupMenuStyle" parent="android:Widget.Holo.Light.PopupMenu"> 
    <item name="android:popupBackground">@android:color/white</item> 
</style> 

XML Toolbar

<android.support.v7.widget.Toolbar 
    android:id="@+id/tool_bar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@color/ColorPrimary" 
    android:elevation="2dp" 
    android:theme="@style/MyDarkToolbarStyle" /> 

risposta

64

Per cambiare il colore menu delle opzioni della barra degli strumenti, aggiungere questo al vostro elemento barra degli strumenti

app:popupTheme="@style/MyDarkToolbarStyle" 

Quindi nello styles.xml definisci lo stile del menu popup

<style name="MyDarkToolbarStyle" parent="ThemeOverlay.AppCompat.Light"> 
    <item name="android:colorBackground">@color/mtrl_white_100</item> 
    <item name="android:textColor">@color/mtrl_light_blue_900</item> 
</style> 

Nota che è necessario utilizzare colorBackgroundnonbackground. Quest'ultimo sarebbe applicato a tutto (il menu stesso e ogni voce di menu), il primo si applica solo al menu popup.

+4

Questo è progettato in modo non ottimale. Grazie .. – milosmns

+0

Penso che la proprietà popupTheme funzioni solo su API 21 e su – CapitanNerd

+0

Questo non ha funzionato per me, ma [questo] (https://stackoverflow.com/questions/26554996/change-toolbar-color-in- appcompat-21). – Android

10

Edit:

se si desidera solo un menu di overflow comparsa bianco solo fare questo

<android.support.v7.widget.Toolbar 
    android:id="@+id/tool_bar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@color/ColorPrimary" 
    android:elevation="2dp" 
    app:theme="@style/MyDarkToolbarStyle" 
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"" /> 

e rimuovere la ridondante popupTheme tua xml Stile

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

Si dovrebbe anche includere questo nella vostra top (genitore) Disposizione

xmlns:app="http://schemas.android.com/apk/res-auto" 
+2

No, la barra degli strumenti si trova nella Libreria di supporto ed è compatibile con le versioni precedenti – Kuffs

2

più semplice modo

Se si desidera solo un menu di overflow comparsa bianco solo fare questo:

<android.support.v7.widget.Toolbar 
    android:id="@+id/tool_bar" 
    android:layout_width="match_parent" 
    android:layout_height="?attr/actionBarSize" 
    android:background="@color/ColorPrimary" 
    android:elevation="2dp" 
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 

Inoltre, date un'occhiata al valore dell'attributo android:layout_height.

+1

funziona come un incantesimo. Grazie !!! –

Problemi correlati