如何设置 android 操作栏溢出菜单的样式

How to style android actionbar overflow menu

我正在通过官方文档学习android。问题是,android:popupMenuStyle 不起作用。我尝试了所有关于此的发现,例如使用 android:actionBarWidgetTheme,但其中 none 解决了我的问题。 这是我的风格:

    <resources xmlns:android="http://schemas.android.com/apk/res/android">

    <style name="CustomTheme" parent="@style/Theme.AppCompat.Light">
        <item name="android:actionBarStyle">@style/CustomTheme.ActionBar</item>
        <item name="actionBarStyle">@style/CustomTheme.ActionBar</item>
        <item name="android:actionOverflowButtonStyle">@style/CustomTheme.ActionBar.ActionOverflowButtonStyle</item>
        <item name="actionOverflowButtonStyle">@style/CustomTheme.ActionBar.ActionOverflowButtonStyle</item>
        <item name="android:popupMenuStyle">@style/CustomTheme.ActionBar.PupopMenuStyle</item>
        <item name="popupMenuStyle">@style/CustomTheme.ActionBar.PupopMenuStyle</item>
        <item name="android:windowActionBarOverlay">true</item>
        <item name="windowActionBarOverlay">true</item>
    </style>
    <style name="CustomTheme.ActionBar.PupopMenuStyle" parent="@style/Widget.AppCompat.Light.PopupMenu">
        <item name="android:popupBackground">@drawable/action_bar_background</item>
    </style>
        ...
    </resources>

我的最小 SDK 是 11。 我做错了什么?

好吧,非常感谢 this post of scriptedpapers,我发现我应该使用 android:dropDownListViewStyle,而不是 android:popupMenuStyle。 (完全误解了这个概念,真可惜:)))

现在我的风格是这样的:

    </resources><resources xmlns:android="http://schemas.android.com/apk/res/android">

        <style name="CustomTheme" parent="@style/Theme.AppCompat.Light">
            <item name="android:actionBarStyle">@style/CustomTheme.ActionBar</item>
            <item name="actionBarStyle">@style/CustomTheme.ActionBar</item>
            <item name="android:actionOverflowButtonStyle">@style/CustomTheme.ActionBar.ActionOverflowButtonStyle</item>
            <item name="actionOverflowButtonStyle">@style/CustomTheme.ActionBar.ActionOverflowButtonStyle</item>
            <item name="android:dropDownListViewStyle">@style/CustomTheme.ActionBar.DropDownListViewStyle</item>
            <item name="dropDownListViewStyle">@style/CustomTheme.ActionBar.DropDownListViewStyle</item>
            <item name="android:windowActionBarOverlay">true</item>
            <item name="windowActionBarOverlay">true</item>
        </style>

        <style name="CustomTheme.ActionBar.DropDownListViewStyle" parent="@style/Widget.AppCompat.Light.ListView.DropDown">
            <item name="android:background">@drawable/action_bar_background</item>
        </style>
        ...
    </resources>