web-dev-qa-db-fra.com

Couleur d'arrière-plan du menu d'options de la barre d'outils

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" />
14
WISHY

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

73
Apurva

É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"
11
cozeJ4

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.

7
Filipe Brito