要只重叠,请使用以下方法:PopupMenu popupMenu = new PopupMenu(getContext(), this, Gravity.NO_GRAVITY, R.attr.actionOverflowMenuStyle, 0);
要获得带有明亮背景和对偏移量进行详细控制的弹出器,请使用以下方法:
styles.xml
true
0dp
0dp
代码:ContextThemeWrapper contextThemeWrapper = new ContextThemeWrapper(getContext(), R.style.PopupMenuOverlapAnchor);
PopupMenu popupMenu = new PopupMenu(contextThemeWrapper, this);
:不再工作: 这里是一个调整 PopupMenu 位置的简单方法。 它将菜单放置在它的锚点视图( overflowButton ) 上,类似于操作栏中的菜单:PopupMenu popupMenu = new PopupMenu(context, overflowMenuButton);
popupMenu.inflate(R.menu.my_menu);
//Fix vertical offset
overflowMenuButton.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
popupMenu.show();
if (popupMenu.getDragToOpenListener() instanceof ListPopupWindow.ForwardingListener)
{
ListPopupWindow.ForwardingListener listener = (ListPopupWindow.ForwardingListener) popupMenu.getDragToOpenListener();
listener.getPopup().setVerticalOffset(-overflowMenuButton.getHeight());
listener.getPopup().show();
}
}
});