Как установить цвет фона всплывающего меню?

Привет всем, я имею дело с небольшой проблемой с всплывающим меню. Честно говоря, я не знаю, в чем проблема, я пытался найти в Интернете ответы, но, к сожалению, не могу. Так..

Я создал пользовательскую панель инструментов и установил панель действий без панели действий. Затем я создал всплывающее меню на этой панели инструментов. Сначала я попытался изменить значок меню с помощью стилей, и это сработало. Но потом я захотел изменить фон и цвет текста пунктов меню.

Это код, который у меня есть на вкладке «Дизайн» пункта меню:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">

<item android:id="@+id/fitItem1"
    android:title="Item 1"
    app:showAsAction="never" />

<item android:id="@+id/fitItem2"
    android:title="Item 2"
    app:showAsAction="never"/>

<item android:id="@+id/fitItem3"
    android:title="Item 3"
    app:showAsAction="never"/>

And even in the design menu it looked like this: But when you start the app it looks by default (white background, black text)

Пример пунктов меню

Поэтому я подумал, что это где-то в стилях, но ничего подобного нет, и каждое руководство, которому я пытался следовать, не имело никакого эффекта. За исключением стиля name="MyPopBackground", который фактически меняет фон.

   <resources>

        <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->

        <item name="android:actionOverflowButtonStyle">@style/MyActionButtonOverflow</item>
        <item name="android:itemTextAppearance">@style/MyApp.PopupMenu</item>
        <item name="android:popupBackground">@style/MyPopBackground</item>


    </style>

    <style name="AppTheme.NoActionBar">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
    </style>

    <style name="MyActionButtonOverflow" parent="android:Widget.Holo.Light.ActionButton.Overflow">
        <item name="android:src">@drawable/triple_dot_icon</item>
    </style>

    <style name="MyApp.PopupMenu" parent="android:style/TextAppearance.Holo.Widget.ActionBar.Title">
        <item name="android:textColor">@color/colorLightGrey</item>
    </style>

    <style name="MyPopBackground" parent="android:style/Widget.Holo.Light.ListPopupWindow">
        <item name="android:popupBackground">@color/colorGrey</item>
    </style>

    </resources>

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

Буду рад любой помощи, спасибо за помощь.


person Kristian    schedule 25.12.2019    source источник
comment
Посмотрите на это, такая же ситуация stackoverflow.com/questions/59381524/   -  person daniel.jbatiz    schedule 26.12.2019


Ответы (2)


Добавьте стиль popupMenu в вашу AppTheme

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

затем в mainifest.xml

<application
    android:theme="@style/AppTheme" >
</application>
person UD..    schedule 26.12.2019

В стиле AppTheme вы добавляете <item name="android:itemBackground">@color/colorMenu</item>

person Cường Nguyễn    schedule 26.12.2019