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

34

我正在开发一款Android应用程序,需要知道如何更改进度对话框的位置。我需要将其定位在屏幕底部,而不是像默认情况下一样位于中心。

4个回答

83
你可以调用ProgressDialog#getWindow#setGravity(...)来改变它的位置。所以:
ProgressDialog dialog = ProgressDialog.show(AContext, "Test", "On the bottom");
                dialog.getWindow().setGravity(Gravity.BOTTOM);

19

除了其他答案之外,您还可以使用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时,它提供给定边缘的偏移量。


感谢提供额外的信息。我今天不需要,但将来会用到。 - John Ward

3
如果您正在使用自定义主题来设置 ProgressDialog,那么您可以在自定义主题的 style.xml 文件中添加以下 XML 标签到样式中: bottom

1
在布局的最外层XML元素中添加android:gravity =“bottom”可能会解决问题。不确定这是移动对话框还是其内容。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接