Android:弹出菜单位置

标签 android android-layout android-popupwindow

这是一个简单而愚蠢的问题,但我正在开发一个应用程序,在该应用程序中,我会在单击按钮时显示一个弹出菜单。代码如下:

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/

相关文章:

android - 哪个构造函数被调用来查看?

java - 单击时更改 gridview 单元格的颜色

android - 无法在 PopupWindow 中编辑 EditText 的文本

android - 两个 View 都可以在Android中获得焦点吗

android - 无法在移动设备上显示 PopupWindow 消息

android - SearchView setOnClickListener 不工作

android - 媒体播放器 : Couldn't open file on client side; Error(-38, 0) 等等

android - 如何在屏幕的特定位置对齐 View ,在多种屏幕分辨率下保持一致?

使用 Gradle 和产品风格构建的 Android 不包括库

android - TableLayout 中的 TextView 仅在配置更改后居中