2010-08-02 22 views

Respuesta

77

Puede llamar al ProgressDialog#getWindow#setGravity(...) para cambiar la gravedad.

Así:

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

¡Gracias! Funciona perfectamente. – oliverwhite

1

Agregando android: gravity = "bottom" al elemento XML más externo en el diseño podría hacerlo. No estoy seguro si esto mueve el diálogo o el contenido del mismo.

+0

Este won' t traer el diálogo al pie de la pantalla. Puede mover el contenido a la parte inferior de la vista principal. –

16

Además de las otras respuestas que puede utilizar LayoutParams.x o LayoutParams.y para proporcionar un desplazamiento desde el borde dado. Por ejemplo:

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

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

Y es bueno que usted sepa acerca LayoutParams.y:

posición Y para esta ventana. Con la gravedad predeterminada, se ignora. Al usar TOP o BOTTOM proporciona una compensación desde el borde dado.

y sobre LayoutParams.x:

posición X para esta ventana. Con la gravedad predeterminada, se ignora. Cuando se usa IZQUIERDA o INICIO o DERECHA o FINAL proporciona un desplazamiento desde el borde dado.

+0

Gracias por la información adicional. No lo necesito hoy, pero lo haré en el futuro. –

3

Si está utilizando cualquier tema personalizado para el ProgressDialog, entonces se podría añadir el código XML siguiente para el estilo en su archivo style.xml del tema personalizado

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

Cuestiones relacionadas