Подтвердить что ты не робот

Цвет фона меню панели инструментов

Я использую панель инструментов для 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" />
4b9b3361

Ответ 1

Чтобы изменить цвет меню параметров панели инструментов, добавьте это в свой элемент панели инструментов

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>

Обратите внимание, что вам нужно использовать colorBackground не background. Последний будет применяться ко всему (самому меню и каждому пункту меню), первое относится только к всплывающему меню.

Ответ 2

Edit:

если вы просто хотите, чтобы всплывающее меню белого переполнения просто выполнялось

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

и удалите избыточный popupTheme ваш стиль xml

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

Ответ 3

Простейший способ

Если вы просто хотите, чтобы всплывающее меню белого переполнения просто делало это:

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