【问题标题】:AppCompat v21 PopupMenu styleAppCompat v21 PopupMenu 样式
【发布时间】:2014-12-06 13:21:38
【问题描述】:

我正在我的应用中实现一个自定义 PopupMenu,但在设计它时遇到了困难。

PopupMenu 创建为:

    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>

我尝试应用各种样式和属性,但无论我做什么,我总是会看到:

如何摆脱那些可笑的不正确布局填充?我想这都是因为我缺少一些重要的样式属性。

不确定它是否重要,但是当我在 API 19 代码中使用不带 AppCompat lib 的样式时效果很好。

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

【问题讨论】:

  • 您找到解决此问题的方法了吗?我也有..
  • 很遗憾没有。我重新设计了 UI 以摆脱弹出菜单

标签: android styles android-appcompat popupmenu


【解决方案1】:

您可以尝试将其添加到您的弹出样式中:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-28
    • 2012-03-29
    • 2014-12-23
    • 1970-01-01
    相关资源
    最近更新 更多