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

标签 android android-menu

大家好,我正在处理弹出菜单的一个小问题。老实说,我不知道问题出在哪里,我尝试在互联网上搜索是否可以找到任何答案,但不幸的是我找不到。所以..

我创建了一个自定义工具栏并将 Activity 设置为无操作栏。然后我在此工具栏中创建了一个弹出菜单。首先,我尝试通过样式更改菜单的图标,并且成功了。但后来我想更改菜单项的背景和文本颜色。

这是我在菜单项的设计选项卡中的代码:

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

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

Menu items example

所以我认为它是在样式中的某个地方设置的,但没有类似的东西,并且我尝试遵循的每个指南都没有效果。除了 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>

可能有一些无用的样式,但因为我不知道问题出在哪里。我把它们留在那里。我的目标是使该菜单看起来像之前显示的图像。

我很高兴获得任何帮助,感谢您的帮助。

最佳答案

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

关于android - 如何设置弹出菜单的背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59482402/

相关文章:

java - 如何在工具栏的后退箭头上显示和设置点击事件?

android - 如何专注于操作栏中的可折叠操作 View EditText 项(展开时)并强制打开软键盘?

android - Android 上的 DRY 选项菜单

android - 使用新的 MediaCodec 库在 android 上进行视频压缩

android - osmdroid 错误下载 Maptile

LAUNCHER Activity 的Android默认launchMode?

android - 溢出菜单和子菜单中的色调菜单图标

java - 在 if/else 语句中调用 AsyncTask?- android

android - 是否可以在Android中编译LaTex?

Android 选项菜单不起作用