首页 > 解决方案 > 如何更改弹出菜单中项目之间的边距

问题描述

我想在 android 上更改我的弹出菜单中的项目之间的空间

我的意思是这个空间: 在此处输入图像描述

我希望有一个直截了当的解决方案,但据我所知,android 不会那么简单

无论如何,我还想设置maxHeight我的弹出窗口...在这种情况下,弹出窗口由 TextView“选择奖品”锚定,因此它会填充其上方的空间,但并非所有项目都适合该空间,因此 android 会自动创建一个scrow 视图(垂直)

问题是,我知道 100% 的用户不会使用此滚动条,因此我的菜单中“旅行”下方的项目将永远不会被看到。

如何设置高度以便为所有项目腾出足够的空间?

=============更新=================

为了清楚起见,这不是微调器,而是弹出菜单

this.popupCategories = new PopupMenu(this, this.categoryLabel);
for (Giveaway.GiveawayCategoryGroup catGroup : categoryGroups) {

            SubMenu submenu = this.popupCategories.getMenu().addSubMenu(catGroup.getDescription(lang));
            for (Giveaway.GiveawayCategory cat : (Collection<? extends Giveaway.GiveawayCategory>) catGroup.getCategories()) {
                if (cat.isActive())
                    submenu.add(Menu.NONE, cat.getValue().hashCode(), (int) cat.getOrder(), cat.getDescription(lang));
            }
        }

标签: androidandroid-menupopupmenuandroid-popupwindow

解决方案


您需要在 AppTheme 里面设置您喜欢的项目行高styles.xml

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="android:listPreferredItemHeightSmall">20dp</item>
</style>

您可能需要稍微修改此数字以获得正确的值,但它决定了这些行的高度。确保替换Theme.AppCompat.Light.DarkActionBar为您当前使用的任何内容。

至于设置最大高度,恐怕您必须为此创建自己的扩展类,如本例所示


推荐阅读