我正在开发一个 android 应用程序,需要知道如何更改进度对话框的位置。我需要将它定位在屏幕底部,而不是像默认情况下那样位于中心。
问问题
25471 次
4 回答
83
你可以打电话ProgressDialog#getWindow#setGravity(...)
来改变重力。
所以:
ProgressDialog dialog = ProgressDialog.show(AContext, "Test", "On the bottom");
dialog.getWindow().setGravity(Gravity.BOTTOM);
于 2010-08-03T00:48:40.863 回答
18
除了其他答案之外,您还可以使用 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 时,它提供从给定边缘的偏移量。
于 2012-12-24T08:01:17.043 回答
3
如果您为 ProgressDialog 使用任何自定义主题,则可以将以下 xml 标记添加到自定义主题的 style.xml 文件中的样式
<item name="android:layout_gravity">bottom</item>
于 2015-11-30T09:04:04.363 回答
1
将 android:gravity="bottom" 添加到布局中最外层的 XML 元素可能会做到这一点。不确定这是否会移动对话框或其内容。
于 2010-08-02T23:15:48.317 回答