主题 Android 的选项菜单

Theming Android's Options Menu

我正在尝试设计 Android 的选项菜单。但是,我不知道如何更改弹出菜单的背景颜色。 我想摆脱白色边框或更改边框的颜色。 我尝试了以下操作:

 <style name="DarkTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">
        ...
        <item name="android:popupMenuStyle">@style/MyActionBar</item>
        ...
    </style>
<style name="MyActionBar" parent="Widget.AppCompat.PopupMenu">
        <item name="background">@color/black</item>
        <item name="backgroundColor">@color/black</item>
        <item name="backgroundTint">@color/black</item>
        <item name="android:colorBackground">@color/black</item>
        <item name="android:background">@color/black</item>
        <item name="android:backgroundTint">@color/black</item>
        <item name="android:popupBackground">@color/black</item>
        <item name="popupMenuBackground">@color/black</item>
    </style>

<item name="popupMenuBackground">?themeColorPrimary</item>

就这么简单!

如果您喜欢使用样式,请使用:

<item name="popupMenuStyle">@style/MyActionBar</item>

而不是:

<item name="android:popupMenuStyle">@style/MyActionBar</item>

你必须设置

<style name="BasicActionBar"
    parent="@style/Widget.AppCompat.Light.ActionBar.Solid">
    <item name="android:popupTheme">@style/popup</item>
    <item name="popupTheme">@style/popup</item>
</style>

<style name="popup" parent="@style/ThemeOverlay.AppCompat.Light">
    <item name="android:colorBackground">@color/your_color</item>
</style>
<!-- somewhere in your theme -->
<item name="actionBarStyle">@style/BasicActionBar</item>

在您的操作栏主题中