J'utilise la barre d'outils pour Android. Je veux juste changer la couleur d'arrière-plan du menu de débordement. Mais cela ne change pas.
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>
Barre d'outils XML
<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" />
Pour changer la couleur du menu d'options de la barre d'outils, ajoutez ceci à votre élément de barre d'outils
app:popupTheme="@style/MyDarkToolbarStyle"
Ensuite, dans votre styles.xml
définir le style du menu contextuel
<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>
Notez que vous devez utiliser colorBackground
pasbackground
. Ce dernier serait appliqué à tout (le menu lui-même et chaque élément de menu), le premier ne s'applique qu'au menu contextuel.
Éditer:
si vous voulez juste un menu contextuel de débordement blanc, faites-le
<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"" />
et supprimez la fenêtre contextuelle redondante
<style name="MyDarkToolbarStyle" parent="Widget.AppCompat.Toolbar">
<item name="theme">@style/ThemeOverlay.AppCompat.Dark.ActionBar</item>
</style>
Vous devez également l'inclure dans votre mise en page principale (parent)
xmlns:app="http://schemas.Android.com/apk/res-auto"
manière la plus simple
Si vous voulez juste un menu contextuel de débordement blanc, faites ceci:
<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" />
Jetez également un œil à la valeur de Android:layout_height
attribut.