[英]How to set the position of Pop Up Menu?
我正在使用 PopupMenu ,我必须在我单击的按钮下方修复弹出菜单的位置,但它显示在上方我的按钮下方是我所做的代码。
private final static int ONE = 1;
private final static int TWO = 2;
private final static int THREE = 3;
PopupMenu popupMenu = new PopupMenu(context, convertView.findViewById(R.id.txtOverflowIconList_item_Egov));
popupMenu.getMenu().add(Menu.NONE, ONE, Menu.NONE, "Item 1");
popupMenu.getMenu().add(Menu.NONE, TWO, Menu.NONE, "Item 2");
// popupMenu.getMenu().add(Menu.NONE, THREE, Menu.NONE, "Item 3");
popupMenu.setOnMenuItemClickListener(new OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case ONE:
Toast.makeText(context, "first ", 100).show();
break;
case TWO:
Toast.makeText(context, "Two ", 100).show();
break;
}
return false;
}
});
holder.txtOverflowIcon.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
popupMenu.show();
}
});
以下是我得到的输出:
请帮我。
我可以解决那个问题。 PopupMenu
将像ActionBar
: https : //stackoverflow.com/a/29702608/1185087
而不是popupMenu.show();
你需要这样做
popupMenu.show();
if (popupMenu.getDragToOpenListener() instanceof ListPopupWindow.ForwardingListener) {
ListPopupWindow.ForwardingListener listener = (ListPopupWindow.ForwardingListener) popupMenu
.getDragToOpenListener();
listener.getPopup().setHorizontalOffset(x);
listener.getPopup().setVerticalOffset(y);
listener.getPopup().show();
}
计算要显示弹出窗口的锚视图或按钮的位置以设置 HorizontalOffset(x) 和 VerticalOffset(y)。
弹出菜单总是锚定到一个视图(按钮),并且总是出现在它所附加的视图的上方或下方,这取决于可用空间。
如果您想根据需要定位菜单,请为此目的更好地使用对话框或弹出窗口。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.