android - 如何更改弹出菜单中项目之间的边距
问题描述
我想在 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));
}
}
解决方案
您需要在 AppTheme 里面设置您喜欢的项目行高styles.xml
:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:listPreferredItemHeightSmall">20dp</item>
</style>
您可能需要稍微修改此数字以获得正确的值,但它决定了这些行的高度。确保替换Theme.AppCompat.Light.DarkActionBar
为您当前使用的任何内容。
至于设置最大高度,恐怕您必须为此创建自己的扩展类,如本例所示。
推荐阅读
- ios - 强制 iOS 返回新位置?
- php - FormCollection 和 KnpPaginator Symfony 4
- python - 将值传递给装饰器
- php - 为什么在 codeigniter 中无法正确计算秒和分钟?
- java - 请求参数上的弹簧过滤器授权
- javascript - React js过滤器无法正常工作,删除字符时不会返回项目
- python - 查找RotatedRect的宽度和高度
- c# - 在 datagridview 组合框中将查询结果显示为默认项
- .htaccess - Yii2 启用 urlManager 时出现 404 错误
- python - pygame中自制的2D碰撞检测不起作用