如何使 PopupWindow 居中?

2023-12-04

我创建了一个活动,其中添加了一个按钮,单击该按钮时会弹出一个弹出窗口。以下是 showPopup() 方法的代码:

    private void showPopup() {
    LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    View layout = inflater.inflate(R.layout.popup_layout, (ViewGroup) findViewById(R.id.popup_element), false);

    final PopupWindow pwindo = new PopupWindow(layout, LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT, true);

    Button btnAgree = (Button) layout.findViewById(R.id.ok);
    btnAgree.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            pwindo.dismiss();
        }
    });

    pwindo.showAtLocation(layout, Gravity.CENTER, 0, 0);
    }
}

我会将其垂直和水平居中。我尝试了几种我在这里看到的方法,但没有一个有效。为什么我总是在屏幕顶部弹出窗口?


您可以使用 setHorizo​​ntalOffset:

ListPopupWindow popupWindow = new ListPopupWindow(this);

// Position
popupWindow.setAnchorView(btn);
popupWindow.setPromptPosition (ListPopupWindow.POSITION_PROMPT_ABOVE);
popupWindow.setHorizontalOffset((btn.layoutParams.width - popupWindow.getWidth())/2);

enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使 PopupWindow 居中? 的相关文章

随机推荐

  • System.in方法指定的键盘在哪里?

    我无法从概念上理解下面的代码 从键盘检索字符并打印到命令行 中我指定输入必须来自键盘的位置 public class Adder public static void main String arr Explain this next li
  • 无法将参数传递给 @selector 方法?

    我目前正在尝试使用标题为 X 的 UIButton 作为从视图中删除 Sprite 的方法 基本上 我的代码的工作原理是 当触摸精灵时 一条消息会发送到传递已选择的 Sprite 精灵的委托 视图控制器 在此方法中 我在该精灵之上绘制一个
  • Jquery 可选择范围选择(滑块行为)

    我想用值列表和选择范围的选项替换滑块 我关注了 jquery selectable 文章 它提供了一个很好的多选选项 http jqueryui com demos selectable display grid 由于我只需要范围选择 因此
  • 如何允许缺少 .d.ts 类型定义的模块?

    我正在使用一些不受欢迎的模块 例如Dyo and js sha3似乎没有任何类型 我现在并不真正关心第三方库中的类型 我不想花几个小时来输入这些类型 我主要将它用于服务器 以限制我的错误并在开发过程中更轻松地进行故障排除 I had a C
  • 从 JSONObjects 的 JSONArray 中删除除一个元素之外的所有元素

    我有一个像这样的 JSONArray org json a a b a c a d a e a f a g a 我想删除所有JSONObjects that do not有钥匙a 除了我幼稚的方法之外 还有更好的方法吗 Iterator o
  • Eclipse C++ 多个项目通用文件

    在 Eclipse CDT 中 我希望有几个 C 项目 projA projB projC 等 其中都包含一些 c cpp and or h来自公共目录的文件 这是我现有的文件结构 Workspace gt projA gt src gt
  • jQuery 将toggleClass 保存在cookie 或localStorage 中

    我正在尝试保存 cookie 或使用localStorage 以更好的为准 记住访问者何时单击加号按钮来显示 隐藏 div 任何人都可以协助使下面的代码与 cookie 一起使用或localStorage plus on click fun
  • 设计:注册登录尝试

    我有一个 Rails 3 0 项目使用devise我被要求在数据库中注册每次成功的登录和每次失败的尝试 来自devise我想我必须扩展文档FailureApp但这些示例只是重定向用户 根本没有使用该模型 在堆栈溢出我刚刚发现这个问题但仍未得
  • CultureInfo 的 2 个字母 ISO 国家/地区代码

    我有一个 Xamarin Forms 应用程序正在获取 GeoLocation 的 2 个字母的 ISO 国家 地区代码 我需要该应用程序以本地风格显示货币 因此 如果我将手机从英国带到日本 它会显示以日元格式设置的货币字段 设置十进制货币
  • Regex & BBCode - 完善嵌套报价

    我正在为我的网站编写一些 BBcode 我已经设法让大部分代码完美运行 但是 QUOTE 标签给了我一些悲伤 当我得到这样的东西时 QUOTE 1 QUOTE 2 This is a quote from someone else QUOT
  • 显示已过去时间

    我需要动态显示经过的时间 我的代码将根据间隔值弹出一条消息 public void button1 Click object sender EventArgs e this TopMost true DialogResult result1
  • Swift 线程 1:致命错误:init(coder:) 尚未实现(调用超级解决方案不起作用)

    嘿伙计们 我已经四处寻找 但仍然找不到解决我的问题的方法 我这里有一个自定义类 import UIKit DatasourceController is simply a UICollectionViewController that al
  • 使用套接字时发送当前值的 Unity 延迟

    Visual Studio 中的 client cs private void SendToServer string HeartRate SetHRTest HeartRate try s client GetStream StreamR
  • 通过 Javascript 预览 Html 文件上传

    我想为一篇文章展示预览之类的东西 所以通过 JS 获取详细信息 但问题来了
  • SVG onmouseover 对于具有重叠元素的组发生两次

    当将函数附加到onmouseoverSVG 组的事件
  • 如何隐藏图像的物理路径

    在我的应用程序中 我通过给出目录的物理路径来显示用户的图像 例如http www example com user images abcdefghijk jpg 但我不想向外部用户公开这个物理路径来访问直接文件 我想根据 gravtar 类
  • 如何在 scala 中将嵌套 JSON 转换为映射对象

    我有以下 JSON 对象 user id 123 data city New York timestamp 1563188698 31 session id 6a793439 6535 4162 b333 647a6761636b user
  • 如何从 hsearch 中删除元素

    我正在使用 GNU C 库提供的 hsearch r 函数 我发现虽然我可以使用 hsearch r 将元素添加到哈希表中并将操作作为 ENTER 传递 但我看不出有什么方法可以从哈希表中删除元素或条目 有人知道为什么会这样吗 我可以执行以
  • 使用 APP_INITIALIZER 延迟加载模块

    我们有一个应用程序 我们通过路由器延迟加载模块 我们需要在应用程序模块启动之前加载一些资源 但我们不想在路由器上使用解析 这就是为什么我们尝试创建一些提供程序工厂 APP INITIALIZER 来从服务器加载一些数据 然后在该延迟加载模块
  • 如何使 PopupWindow 居中?

    我创建了一个活动 其中添加了一个按钮 单击该按钮时会弹出一个弹出窗口 以下是 showPopup 方法的代码 private void showPopup LayoutInflater inflater LayoutInflater thi