Comment modifier la position d'une boîte de dialogue de progression?

Je développe une application android et j'ai besoin de savoir comment changer le positionnement d'une boîte de dialogue de progression. J'ai besoin qu'il soit positionné au bas de l'écran au lieu du centre comme c'est le cas par défaut.

33
demandé sur Bobs 2010-08-03 02:22:08

4 réponses

Vous pouvez appeler ProgressDialog#getWindow#setGravity(...) pour changer la gravité.

Donc:

ProgressDialog dialog = ProgressDialog.show(AContext, "Test", "On the bottom");
                dialog.getWindow().setGravity(Gravity.BOTTOM);
78
répondu Rich Schuler 2010-08-03 00:48:40

En plus des autres réponses, vous pouvez utiliser LayoutParams.x ou LayoutParams.y pour fournir un décalage par rapport au bord donné. Par Exemple:

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

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

Et il est bon pour vous de connaître LayoutParams.y:

Position Y pour cette fenêtre. Avec la gravité par défaut, il est ignoré. Lorsque vous utilisez TOP ou BOTTOM, il fournit un décalage par rapport au bord donné.

Et à propos de LayoutParams.x:

Position X pour cette fenêtre. Avec la gravité par défaut, il est ignoré. Lorsque vous utilisez LEFT ou START ou RIGHT ou END il fournit un décalage de le edge donné.

16
répondu Bobs 2012-12-24 08:01:17

Si vous utilisez un thème personnalisé pour ProgressDialog, vous pouvez ajouter la balise xml ci-dessous au style de votre style.fichier xml du thème personnalisé

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

3
répondu Samuel Robert 2016-09-06 18:27:49

Ajouter android: gravity= "bottom" à l'élément XML le plus externe de la mise en page pourrait le faire. Je ne sais pas si cela déplace la boîte de dialogue ou son contenu.

1
répondu matto1990 2010-08-02 23:15:48