2010-08-02 13 views

risposta

77

È possibile chiamare ProgressDialog#getWindow#setGravity(...) per modificare la gravità.

Quindi:

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

Grazie! Funziona perfettamente. – oliverwhite

1

Aggiunta di android: gravità = "inferiore" all'elemento XML più esterno nel layout potrebbe farlo. Non sono sicuro se questo sposta la finestra di dialogo o il suo contenuto.

+0

questo ha vinto' t portare la finestra di dialogo nella parte inferiore dello schermo. Può spostare il contenuto nella parte inferiore della vista principale. –

16

In aggiunta alle altre risposte che è possibile utilizzare LayoutParams.x o LayoutParams.y per fornire un offset dal bordo dato. Per esempio:

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

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

Ed è un bene per voi di conoscere LayoutParams.y:

posizione Y per questa finestra. Con la gravità predefinita viene ignorata. Quando si utilizza TOP o BOTTOM fornisce un offset dal bordo specificato.

e circa LayoutParams.x:

posizione X per questa finestra. Con la gravità predefinita viene ignorata. Quando si utilizza SINISTRA o INIZIA o DESTRA o FINE, fornisce uno scostamento da al bordo specificato.

+0

Grazie per le informazioni aggiuntive. Non ne ho bisogno oggi, ma lo farò in futuro. –

3

Se si sta utilizzando qualsiasi tema personalizzato per il ProgressDialog, allora si potrebbe aggiungere il tag XML di seguito per lo stile nel file style.xml del tema personalizzato

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