Android AppCompat v21弹出菜单样式

Android AppCompat v21弹出菜单样式,android,styles,android-appcompat,popupmenu,Android,Styles,Android Appcompat,Popupmenu,我在我的应用程序中实现了一个自定义弹出菜单,但在设计它的样式时遇到了困难 弹出菜单创建为: public DropDownMenu(Context context, Button button, int menuId, OnMenuItemClickListener listener) { mButton = button; mPopupMenu = new PopupMenu(context, mButto

我在我的应用程序中实现了一个自定义弹出菜单,但在设计它的样式时遇到了困难

弹出菜单创建为:

    public DropDownMenu(Context context, Button button, int menuId,
                        OnMenuItemClickListener listener) {
        mButton = button;
        mPopupMenu = new PopupMenu(context, mButton);
        mMenu = mPopupMenu.getMenu();
        mPopupMenu.getMenuInflater().inflate(menuId, mMenu);
        mPopupMenu.setOnMenuItemClickListener(listener);
        mButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                mPopupMenu.show();
            }
        });
    }

public DropDownMenu addDropDownMenu(Button button, int menuId) {
    DropDownMenu menu = new DropDownMenu(mContext, button, menuId, this);
    mMenus.add(menu);
    return menu;
}
在styles.xml中,我设置:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="popupMenuStyle">@style/PopupMenu</item>
    <item name="textAppearanceLargePopupMenu">@style/PopupMenu.MenuItemText.Large</item>
    <item name="textAppearanceSmallPopupMenu">@style/PopupMenu.MenuItemText.Small</item>
</style>

<style name="PopupMenu" parent="Widget.AppCompat.PopupMenu">
    <item name="android:popupBackground">@color/anybill_blue</item>
</style>

@样式/弹出菜单
@style/PopupMenu.MenuItemText.Large
@style/PopupMenu.MenuItemText.Small
@颜色/蓝色
我尝试应用各种样式和属性,但无论我做什么,我总是看到:

如何摆脱那些可笑的错误布局填充?我想这都是因为我缺少一些重要的风格特征

不确定这是否重要,但当我在API19代码中不使用AppCompat库时,样式运行良好


更新:如果我使用android.support.v7.widget.PopupMenu,则样式如上所示。如果我使用android.widget.PopupMenu,则根本没有应用任何样式-始终是白色背景和黑色文本,但显示正确

您可以尝试将此添加到您的popupstyle中:

<item name="android:popupElevation">0dp</item>
0dp

您找到这个问题的解决方案了吗?我也有…不幸的是没有。我重新设计了用户界面来摆脱弹出菜单