[英]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.