我正在使用默认的弹出菜单,并期望相同的行为。一切正常。我担心的是有关弹出菜单的呈现。我的弹出菜单停留在屏幕右侧。
我想要的是YouTube上的YouTube应用所使用的行为。
我主要无法为弹出菜单提供适当的边距。请帮忙。
我尝试过将重力提供给弹出菜单。但是弹出菜单会停留在屏幕右侧。
PopupMenu popupMenu = new PopupMenu(mContext, anchor, Gravity.LEFT);
popupMenu.getMenuInflater().inflate(R.menu.menu_edit_accessory, popupMenu.getMenu());
最佳答案
您可以使用以下属性来更改PopupMenu的位置:
重力, dropDownHorizontalOffset 和 dropDownVerticalOffset
首先将重力设置为重力。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>