如何更改进度对话框的位置?

Posted

技术标签:

【中文标题】如何更改进度对话框的位置?【英文标题】:How to change the position of a progress dialog? 【发布时间】:2011-03-24 11:08:33 【问题描述】:

我正在开发一个 android 应用,需要知道如何更改进度对话框的位置。我需要将它定位在屏幕底部,而不是像默认那样位于中心。

【问题讨论】:

【参考方案1】:

您可以拨打ProgressDialog#getWindow#setGravity(...)更改重力。

所以:

ProgressDialog dialog = ProgressDialog.show(AContext, "Test", "On the bottom");
                dialog.getWindow().setGravity(Gravity.BOTTOM);

【讨论】:

【参考方案2】:

除了其他答案之外,您还可以使用 LayoutParams.x 或 LayoutParams.y 提供与给定边缘的偏移量。例如:

progressDialog = ProgressDialog.show(this, "Title","Text");

progressDialog.getWindow().setGravity(Gravity.TOP);
LayoutParams params = progressDialog.getWindow().getAttributes();
params.y = 100;
progressDialog.getWindow().setAttributes(params);

了解 LayoutParams.y 对您有好处:

此窗口的 Y 位置。使用默认重力它被忽略。 当使用 TOP 或 BOTTOM 时,它会提供从给定边缘的偏移量。

关于 LayoutParams.x:

此窗口的 X 位置。使用默认重力它被忽略。 当使用 LEFT 或 START 或 RIGHT 或 END 时,它提供从 给定的边。

【讨论】:

感谢您提供更多信息。我今天不需要它,但我将来会。【参考方案3】:

如果您为 ProgressDialog 使用任何自定义主题,那么您可以将以下 xml 标签添加到自定义主题的 style.xml 文件中的样式

<item name="android:layout_gravity">bottom</item>

【讨论】:

【参考方案4】:

将 android:gravity="bottom" 添加到布局中最外层的 XML 元素可能会做到这一点。不确定这是否会移动对话框或其内容。

【讨论】:

这不会将对话框带到屏幕底部。它可以将内容移动到父视图的底部。

以上是关于如何更改进度对话框的位置?的主要内容,如果未能解决你的问题,请参考以下文章

如何:使用 IFileOperation 显示进度对话框

带有动画更改的自定义进度对话框的大小

Android在等待位置时显示进度对话框

如何在家庭活动android上显示进度对话框?

进度对话框和后台线程处于活动状态时如何处理屏幕方向更改?

进度对话框和后台线程处于活动状态时如何处理屏幕方向更改?