web-dev-qa-db-ja.com

ツールバーオプションメニューの背景色

Android用のツールバーを使用しています。オーバーフローメニューの背景色を変更したいだけです。しかし、それは変わりません。

スタイル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

    <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

ツールバーオプションメニューの色を変更するには、これをツールバー要素に追加します

app:popupTheme="@style/MyDarkToolbarStyle"

次に、styles.xmlポップアップメニュースタイルを定義する

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

colorBackgroundnotbackgroundを使用する必要があることに注意してください。後者はすべて(メニュー自体と各メニュー項目)に適用され、前者はポップアップメニューにのみ適用されます。

73
Apurva

編集:

白いオーバーフローポップアップメニューが必要な場合は、これを実行してください

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

style xmlの冗長なpopupThemeを削除します

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

また、これをトップ(親)レイアウトに含める必要があります

xmlns:app="http://schemas.Android.com/apk/res-auto"
11
cozeJ4

最も簡単な方法

白いオーバーフローポップアップメニューが必要な場合は、次のようにします。

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

また、Android:layout_height属性の値を見てください。

7
Filipe Brito