Android: изменение фона темы во всплывающем меню.

Мое всплывающее меню имеет черный цвет фона, когда я нажимаю элемент на панели действий. Я хотел бы изменить тему своего всплывающего меню, чтобы он имел светлый (белый) цвет.

Как я могу это сделать?

Вот мой файл style.xml, который на данный момент пуст:

<resources>

    <!--
        Base application theme, dependent on API level. This theme is replaced
        by AppBaseTheme from res/values-vXX/styles.xml on newer devices.



    -->
    <style name="AppBaseTheme" parent="android:Theme.Light">
        <!--
            Theme customizations available in newer API levels can go in
            res/values-vXX/styles.xml, while customizations related to
            backward-compatibility can go here.



        -->
    </style>

    <!-- Application theme. -->
    <style name="AppTheme" parent="AppBaseTheme">

        <!-- All customizations that are NOT specific to a particular API-level can go here. -->

    </style>

</resources>

И выписка из манифеста:

<application
        android:name="com.app.ccccccc.activities.cccccccc"
        android:hardwareAccelerated="true"
        android:allowBackup="true"
        android:icon="@drawable/ic_action_blob"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >

person wawanopoulos    schedule 16.07.2014    source источник


Ответы (2)


В onClick меню действий вы можете программно написать код для установки цвета фона.

или используйте,

<style name="AppTheme" parent="android:Theme.Light">
    <item name="android:popupMenuStyle">@style/PopupMenu</item>
</style>

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

manifest.xml:

 <application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
.............
</application>
person Raghi    schedule 16.07.2014
comment
Спасибо. Не могли бы вы сказать мне, куда я должен добавить элементы ‹style› в моем файле style.xml? - person wawanopoulos; 16.07.2014
comment
Но где в моем файле style.xml? * - person wawanopoulos; 16.07.2014
comment
Вместо того, что есть в вашем Style.xml, не удаляйте ‹! - тему приложения. - ›‹ style name = AppTheme parent = AppBaseTheme ›‹! - Здесь можно найти все настройки, НЕ относящиеся к определенному уровню API. --> - person Raghi; 16.07.2014
comment
Привет, чувак, ты знаешь, что android: popupBackground не работает для api ‹21? - person Natan Lotério; 11.11.2015

Попробуйте отредактировать свой styles.xml следующим образом:

В вашей базовой теме:

<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
    ...
    <item name="android:popupMenuStyle">@style/PopupMenuStyle</item>
</style>

Затем определите PopupMenuStyle следующим образом:

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

Обратите внимание, что стили всплывающего меню по умолчанию не устанавливают фон на сплошной цвет, как я сделал выше, а используют список состояний, который можно рисовать с фоном из 9 патчей, чтобы обеспечить тень и т. Д.

person gnuf    schedule 13.11.2014