如何设置弹出菜单的背景色?

3
大家好,我正在处理一个弹出菜单的小问题。老实说,我不知道问题出在哪里,尝试在互联网上搜索答案,但是不幸的是找不到。所以...
我创建了一个自定义工具栏并将活动设置为无操作栏。然后在这个工具栏中创建了一个弹出式菜单。首先,我尝试通过样式更改菜单图标,它起作用了。但是然后我想更改菜单项的背景和文本颜色。
这是我在设计选项卡中的菜单项代码:
<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"/>

即使在设计菜单中,它看起来是这样的: 但是启动应用程序时,它默认是这样的(白色背景,黑色文本)

菜单项示例

所以我认为它设置在某个地方的样式中,但实际上没有。我尝试跟随的每个指南都没有效果,除了style 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>

可能有一些无用的样式,但由于我不知道问题在哪里,所以我把它们留在那里。我的目标是使菜单看起来像图片中展示的那样。

如果有任何帮助,我将非常感激,谢谢帮助。


1
看这个,情况是一样的 https://stackoverflow.com/questions/59381524/what-android-theme-can-i-use-to-change-the-toolbar-options-menu-color - daniel.jbatiz
2个回答

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

然后在manifest.xml文件中

<application
    android:theme="@style/AppTheme" >
</application>

0
在 AppTheme 样式中,您可以添加 <item name="android:itemBackground">@color/colorMenu</item>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接