2010-08-02 68 views

回答

77

您可以撥打ProgressDialog#getWindow#setGravity(...)來改變重力。

所以:

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

謝謝!完美的作品。 – oliverwhite 2010-08-04 20:45:42

1

將android:gravity =「bottom」添加到佈局中最外面的XML元素可能會做到這一點。不知道這是否會移動對話框或其內容。

+0

此次榮獲」你style.xml文件將對話框帶到屏幕的底部。它可以將內容移動到父視圖的底部。 – 2016-11-30 06:23:35

16

除了可以使用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時,它會在給定邊緣處提供從 的偏移量。

+0

感謝您的其他信息。我今天不需要,但我會在將來。 – 2016-12-14 00:38:17

3

如果您使用的ProgressDialog任何自定義主題,那麼你可以在下面的XML標籤添加到樣式在定製主題

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