Sto sviluppando un'app per Android e ho bisogno di sapere come modificare il posizionamento di una finestra di dialogo. Ho bisogno che sia posizionato nella parte inferiore dello schermo anziché al centro, come per impostazione predefinita.Come modificare la posizione di una finestra di dialogo di avanzamento?
risposta
È possibile chiamare ProgressDialog#getWindow#setGravity(...)
per modificare la gravità.
Quindi:
ProgressDialog dialog = ProgressDialog.show(AContext, "Test", "On the bottom");
dialog.getWindow().setGravity(Gravity.BOTTOM);
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.
questo ha vinto' t portare la finestra di dialogo nella parte inferiore dello schermo. Può spostare il contenuto nella parte inferiore della vista principale. –
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.
Grazie per le informazioni aggiuntive. Non ne ho bisogno oggi, ma lo farò in futuro. –
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>
Grazie! Funziona perfettamente. – oliverwhite