这是一个简单而愚蠢的问题,但我正在开发一个应用程序,在该应用程序中,我会在单击按钮时显示一个弹出菜单。代码如下:
PopupMenu popup = new PopupMenu(mContext, view);
popup.getMenu().add("A");
popup.getMenu().add("B");
popup.getMenu().add("c");
popup.show();
popup.setOnMenuItemClickListener(new OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
// My stuff
}
}
问题是:在某些设备中,弹出窗口出现在按钮的底部,但在某些设备中,弹出窗口与按钮重叠或部分重叠。
如何设置弹窗,使其不与按钮重叠,且按钮完全可见。
最佳答案
您可以使用 PopupWindow
类的 showAtLocation()
方法将 PopupWindow
定位在屏幕上的特定位置,如下所示示例:
PopupWindow popup = new PopupWindow(mContext, view);
popup.getMenu().add("A");
popup.getMenu().add("B");
popup.getMenu().add("c");
//takes the parent view, gravity and location offsets as paremetrs
popup.showAtLocation(view, Gravity.CENTER, 0, coordinate);
在这里您可以找到更多答案:How to show PopupWindow at special location?
关于Android:弹出菜单位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31156056/