弹出窗口(使用 PopupWindow 或 Dialog)无缘无故地填充屏幕宽度

2024-01-11

我正在尝试让弹出窗口表现良好! =)

问题在于弹出窗口“填充了整个屏幕的宽度”,即使布局明确表明它应该“wrap_content”。我使用 Dialog 还是 PopupWindow 并不重要。

首先,弹出窗口的 XML 布局,popup_message.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_margin="20dp"
    android:background="@android:color/transparent"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:orientation="horizontal"
        android:layout_gravity="center" >

        <TextView
            android:layout_width="match_parent"
            android:layout_height="fill_parent"
            android:layout_gravity="center"
            android:background="@android:color/transparent"
            android:gravity="center_vertical|center_horizontal"
            android:orientation="horizontal"
            android:paddingLeft="10dp"
            android:text="@string/new_message"
            android:textColor="#000000"
            android:textAllCaps="true" >

        </TextView>
    </LinearLayout>

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="15dp"
        android:background="#ffffff"
        android:gravity="center_horizontal"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/popup_message_textView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textCursorDrawable="@null" >
        </TextView>

        <Button
            android:id="@+id/jobview_pickup_start_submit"
            android:layout_width="fill_parent"
            android:layout_height="35dp"
            android:layout_below="@+id/popup_message_textView"
            android:layout_gravity="center_vertical|center_horizontal"
            android:layout_marginBottom="15dp"
            android:layout_marginTop="15dp"
            android:gravity="center_horizontal"
            android:text="Confirm"
            android:textColor="#000000" />
    </RelativeLayout>
</LinearLayout>

我正在使用的代码:

LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View input = inflater.inflate(R.layout.popup_message, null);
PopupWindow pw = new PopupWindow(input, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, true);
View v = findViewById(R.id.main_deviceInfoBar);
pw.showAtLocation(v, Gravity.CENTER, 0, 0);

我也尝试过这个:

对话框dialogManualStart = new Dialog(MainActivity.this); dialogManualStart.getWindow().setBackgroundDrawableResource(R.color.transparent); dialogManualStart.requestWindowFeature(MainActivity.this.getWindow().FEATURE_NO_TITLE); dialogManualStart.setContentView(输入); 对话框手动开始.show();

无论我使用什么代码,它总是看起来像这样:

正如你所看到的,它总是填满屏幕的宽度。

问题:谁能告诉我为什么?

======== 编辑 1 =============

我将按钮更改为“wrap_content”(根据 Boogers 的建议),然后它看起来像这样:

这是非常奇怪的行为,不是我所期望的。

如果我将其更改为“match_parent”,它将返回“全宽”,即它从左到右一直延伸。


这是你的问题:

<Button
            android:id="@+id/jobview_pickup_start_submit"
            android:layout_width="fill_parent"
...

将其从“fill_parent”更改为“wrap_content”或“match_parent”

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

弹出窗口(使用 PopupWindow 或 Dialog)无缘无故地填充屏幕宽度 的相关文章

  • BottomNavigationView - 如何获取选定的菜单项?

    我使用BottomNavigationView来切换片段 如何获取当前选定的菜单项 以防止重新打开片段 BottomNavigationView bottomNavigationView BottomNavigationView findV
  • 在应用程序简历中隐藏软键盘

    我有一个 Android 应用程序 使用 Xamarin 用 C 编写 我已将应用程序简化为包含 TextView 和用于横幅广告的 Google admod AdView 的 LinearLayout 我不希望软键盘出现在应用程序中 这不
  • getItem 与 getItemAtPosition

    有两种方法可以获取列表视图中的选定项目 list getAdapter getItem position list getItemAtPosition position 我的问题是 哪一种是首选的做法 我见过人们同时使用这两种方法 您可以使
  • Android 应用程序在后台运行时保存数据

    目前我正在开发 xmmp 客户端 当应用程序位于前台时 该客户端工作得很好 但由于事实上 当应用程序处于后台时 我在 Application 类中保存了大量数据 复杂的 ArrayList 字符串和布尔值作为公共静态 每个字段都被垃圾收集
  • 与 Admob 广告单元 ID 混淆

    我跟着tutorial https developers google com admob android quick start在我的应用程序中创建广告横幅 到目前为止 这有效 我可以看到测试广告 但是 本教程指示我在两个不同的位置使用两
  • Firebase Analytics 禁用受众国家/地区跟踪

    我正在开发一个严格不允许位置跟踪的应用程序 我想使用 Firebase Analytic 的其他功能 例如 PageTransitions 和 Crashalitics 但如果我无法禁用受众位置跟踪 我就无法使用其中任何功能 这是我在 An
  • 如何从 SQLite 获取记录总数

    我正在尝试从 Sqlite DB 获取行的总数 以下是我想要做的代码片段 我不知道我在这里做错了什么 public static int getTotalCount Context context Cursor c null try c g
  • 接近语法错误(代码1)插入Android SQLite

    我正在创建一个通讯录应用程序 用户可以在其中输入姓名 电子邮件地址和号码 我希望将此数据保存在数据库中 但我似乎无法使插入方法起作用 我收到的错误是 android database sqlite SQLiteException near
  • 在 Google Analytics 中跟踪应用程序版本

    我正在使用谷歌分析模块 https marketplace appcelerator com apps 5081 2014113336 https marketplace appcelerator com apps 5081 2014113
  • 如何查找 Android 设备中的所有文件并将它们放入列表中?

    我正在寻求帮助来列出 Android 外部存储设备中的所有文件 我想查找所有文件夹 包括主文件夹的子文件夹 有办法吗 我已经做了一个基本的工作 但我仍然没有得到想要的结果 这不起作用 这是我的代码 File files array file
  • 在我的Android中,当其他应用程序想要录制音频时如何停止录音?

    在我的应用程序中 服务通过 AudioRecord 持续录制音频 当我的应用程序运行时 其他与音频记录相关的应用程序 例如 Google 搜索 无法工作 如何知道何时有其他应用想要录制音频 以便我可以停止录制以释放资源 答案是MediaRe
  • CookieManager.getInstance().removeAllCookie();不删除所有cookie

    我在应用程序的 onCreate 中调用 CookieManager getInstance removeAllCookie 我遇到了一个奇怪的问题 我看到 GET 请求中传递了意外的 cookie 值 事实上 cookie 值是一个非常非
  • 检查 Android 手机上的方向

    如何查看Android手机是横屏还是竖屏 当前配置用于确定要检索的资源 可从资源中获取Configuration object getResources getConfiguration orientation 您可以通过查看其值来检查方向
  • 从 android 简单上传到 S3

    我在网上搜索了从 android 上传简单文件到 s3 的方法 但找不到任何有效的方法 我认为这是因为缺乏具体步骤 1 https mobile awsblog com post Tx1V588RKX5XPQB TransferManage
  • Android Studio:无法启动守护进程

    当我尝试在 Android Studio 中导入 gradle 项目时 遇到以下错误 Unable to start the daemon process This problem might be caused by incorrect
  • Android Webview 图像未加载

    我制作了一个简单的应用程序WebView 但有些图片无法加载 正确 在我的电脑上 错误 在模拟器中 Correct 错误 没有横幅 于是我用Chrome debug进行调试 发现我的代码被改变了 我不添加像noscript or style
  • 材质设计图标颜色

    应该是哪种颜色 暗 材质图标 在官方文档上 https www google com design spec style icons html icons system icons https www google com design s
  • 调节麦克风录音音量

    我们正在尝试调整录音时的音量级别 麦克风似乎非常敏感 会接收到很多静电 我们查看了 setVolumeControlStream 但找不到传入其中来控制麦克风的流 将您的音频源设置为 MIC using MediaRecorder Audi
  • 如何创建像谷歌位置历史记录一样的Android时间轴视图?

    我想设计像谷歌位置历史这样的用户界面 我必须为我正在使用的应用程序复制此 UIRecyclerView 每行都是水平的LinearLayout其中包含右侧的图标 线条和视图 该线是一个FrameLayout具有圆形背景和半透明圆圈Views
  • Android 设备上的静默安装

    我已经接受了一段时间了 在 Android 上静默安装应用程序是不可能的 也就是说 让程序安装捆绑为 APK 的应用程序 而不提供标准操作系统安装提示并完成应用程序安装程序活动 但现在我已经拿到了 Appbrain 快速网络安装程序的副本

随机推荐

  • SQL Server NOLOCK 和联接

    背景 我想运行一个性能关键的查询 并且我不关心脏读 我的问题是 如果我使用连接 我是否还必须在这些连接上指定 NOLOCK 提示 例如 是 SELECT FROM table1 a WITH NOLOCK INNER JOIN table2
  • 是否可以从特定方法初始化单例,而不是在执行应用程序时初始化? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 是否可以从特定方法初始化单例 而不是在执行应用程序时初始化 我需要在 viewdidload 中运行一个方法 具体取决于 Singleton
  • 在发布期间标记 TFS Git 存储库

    我正在使用 TFS 2017 设置构建 发布环境 我将构建设置为在每次提交后自动运行 当我们准备好发布应用程序的版本时 手动创建一个发布 然后部署到各种环境 我们希望在 git 存储库中标记已发布的版本 以便轻松了解哪个 git 修订版本对
  • 如何知道计算C++算法的执行时间?

    我想通过查看算法的运行时性能来测试哪种数据结构是最好的 我该怎么做 例如我已经有一个hashmap
  • NSDecimalNumber 的 NSDecimalNumber 次方

    我有两个 NSDecimalNumbers 我需要应用一个到另一个的幂 最初这段代码使用的是双精度数 我可以使用 pow 函数来计算它 如下所示 double result pow value1 value2 我遇到的问题是我正在将代码转换
  • 如果指向的文件被移动或删除,Linux 上打开的文件句柄会发生什么情况

    如果指向的文件同时出现以下情况 Linux 上打开的文件句柄会发生什么情况 已移走 gt 文件句柄仍然有效吗 已删除 gt 这是否会导致 EBADF 表明文件句柄无效 被新文件替换 gt 文件句柄是否指向这个新文件 替换为新文件的硬链接 g
  • 为什么在 url 中使用 - 而不是 _

    为什么在 url 中使用 而不是 url 包含 似乎没有什么不好的影响 主机名中不允许使用下划线 因此 some place com 不是有效的 URL 因为主机名无效 URL 中允许使用下划线 因此 抛开其他问题不谈 some place
  • 运行一个又一个命令,即使我暂停第一个命令 (Ctrl-z)

    我知道在 bash 中我可以通过用分号分隔命令来运行一个又一个命令 例如 command1 command2 或者如果我只想command2仅当以下情况时才运行command1成功 使用 command1 command2 这可行 但如果我
  • 用于在 Python 中将多字节字符转换为 7 位 ASCII 的 Python 库 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有一个 python 库可以将多字节非 ASCII 字符转换为某种合理形式的 7 位可显示 ASC
  • 在 Nest 5.5.0 中为属性设置 not_analyzed

    我尝试通过 Nest 5 5 0 设置 not analyzed 索引类型 但我不知道该怎么做 My init var map new CreateIndexDescriptor INDEX NAME Mappings ms gt ms M
  • 在 Asp.Net MVC 中显示从控制器返回的 JSON 数组数据

    我的控制器中有一个操作方法 public ActionResult IndexWithJson int Id int page int pageSize 2 int pageNumber page 1 using var adsRepo n
  • Laravel 5 中仅为一种环境启用全局中间件

    我在 Laravel 5 barryvdh laravel cors 中使用全局中间件 但我只希望它在一种环境 dev 上处于活动状态 那是因为我只需要在开发环境中使用 Composer 所以它没有安装在生产环境中 我在应用程序内核中注册了
  • 通过 nfs 共享 mmap 文件?

    场景A 为了在同一主机上运行的两个进程之间共享读 写内存块 Joe 从两个进程映射同一个本地文件 场景B 为了在两个不同主机上运行的两个进程之间共享读 写内存块 Joe 在主机之间通过 nfs 共享一个文件 然后从两个进程映射共享文件 有人
  • 如何将数据推回 int 类型的二维向量中

    我有一个向量 想在运行时将 int 数据存储到其中 我可以用这种方式将数据存储在 2D 向量中吗 std vector
  • awk中计算对数

    如何在 awk 中计算以 10 为底的对数 我试过 2 5 log 10 2 log 10 输出 83051 02180161216529给出 5 7564 但它应该是 12 29836 谢谢 以 10 为底的对数的正确公式是 log 2
  • 如何堆叠表格列来模拟日历议程视图?

    我想转置 HTML 表格而不使用 JS 或使用另一个表格 我有一张桌子 里面有一个时间表 我想在移动屏幕上折叠成单列 我需要this https i stack imgur com 4ioSh png成为this https i stack
  • 如何在eclipse中显示android项目的bin文件夹? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在使用 eclipse Heli
  • Web.Config 中的自定义部分/集合[重复]

    这个问题在这里已经有答案了 我有一堆路由 我希望能够将它们放入我的 Web Config 文件中 我需要为集合中的每个部分 项目提供一个键和两个值字段 类似这样的事情
  • Redis - 获取字典 HMGET 中的值

    我在 Redis 中创建了一个密钥 如下所示 In 1 import redis In 2 conn redis Redis localhost In 3 user name username age 25 likes football s
  • 弹出窗口(使用 PopupWindow 或 Dialog)无缘无故地填充屏幕宽度

    我正在尝试让弹出窗口表现良好 问题在于弹出窗口 填充了整个屏幕的宽度 即使布局明确表明它应该 wrap content 我使用 Dialog 还是 PopupWindow 并不重要 首先 弹出窗口的 XML 布局 popup message