我正在使用默认弹出菜单并期待相同的行为。一切正常。我关心的是弹出菜单的呈现。我的弹出菜单固定在屏幕右侧。
我想要 Android 版 Youtube 应用所使用的行为。
我主要无法为弹出菜单提供右边距。请帮忙。 我试过为弹出菜单提供重力。但是弹出式菜单固定在屏幕右侧。
PopupMenu popupMenu = new PopupMenu(mContext, anchor, Gravity.LEFT);
popupMenu.getMenuInflater().inflate(R.menu.menu_edit_accessory, popupMenu.getMenu());
最佳答案
您可以使用以下属性更改 PopupMenu 的位置: 重力、dropDownHorizontalOffset 和dropDownVerticalOffset
首先将重力设置为Gravity.END
popup.setGravity(Gravity.END);
然后通过创建样式来更改下拉偏移量
<style name="MyPopupMenu" parent="@style/Widget.AppCompat.PopupMenu">
<item name="android:dropDownHorizontalOffset">-4dp</item>
<item name="android:dropDownVerticalOffset">4dp</item>
</style>
如果你想重叠 anchor View 使用
parent="@style/Widget.AppCompat.PopupMenu.Overflow"
最后将 MyPopupMenu 应用到您的主题
<item name="popupMenuStyle">@style/MyPopupMenu</item>
关于android - 实现带边距的弹出菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34449251/