How to change the position of a progress dialog?

2019-01-23 11:03发布

I'm developing an android app and need to know how to change the positioning of a progress dialog. I need it to be positioned at the bottom of the screen instead of at the center like it is by default.

4条回答
何必那么认真
2楼-- · 2019-01-23 11:23

If you're using any custom theme for the ProgressDialog, Then you could add the below xml tag to the style in your style.xml file of the custom theme

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

查看更多
女痞
3楼-- · 2019-01-23 11:31

You can call ProgressDialog#getWindow#setGravity(...) to change the gravity.

So:

ProgressDialog dialog = ProgressDialog.show(AContext, "Test", "On the bottom");
                dialog.getWindow().setGravity(Gravity.BOTTOM);
查看更多
该账号已被封号
4楼-- · 2019-01-23 11:31

In addition to the other answers you can use LayoutParams.x or LayoutParams.y to provide an offset from the given edge. For Example:

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

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

And it is good for you to know about LayoutParams.y:

Y position for this window. With the default gravity it is ignored. When using TOP or BOTTOM it provides an offset from the given edge.

and about LayoutParams.x:

X position for this window. With the default gravity it is ignored. When using LEFT or START or RIGHT or END it provides an offset from the given edge.

查看更多
【Aperson】
5楼-- · 2019-01-23 11:37

Adding android:gravity="bottom" to the outermost XML element in the layout might do it. Not sure if this moves the dialog or the contents of it.

查看更多
登录 后发表回答