2010-08-02 8 views

Odpowiedz

77

Możesz zadzwonić pod numer ProgressDialog#getWindow#setGravity(...), aby zmienić grawitację.

Więc:

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

Dzięki! Działa świetnie. – oliverwhite

1

Dodawanie androida: gravity = "bottom" do najbardziej zewnętrznego elementu XML w układzie może to zrobić. Nie jestem pewien, czy to przesunie okno dialogowe lub jego zawartość.

+0

to won” t wyświetlić okno dialogowe na dole ekranu. Może przenieść treść na dół widoku rodzica. –

16

Oprócz innych odpowiedzi można użyć LayoutParams.x lub LayoutParams.y zapewnić przesunięcie od danej krawędzi. Na przykład:

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

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

I dobrze, aby wiedzieć o LayoutParams.y:

pozycję Y dla tego okna. Przy domyślnej grawitacji jest ignorowany. Podczas korzystania z opcji TOP lub BOTTOM zapewnia przesunięcie względem zadanej krawędzi.

io LayoutParams.x:

pozycja X dla tego okna. Przy domyślnej grawitacji jest ignorowany. Podczas używania LEWO lub START, PRAWO lub KOŃCZU zapewnia przesunięcie od zadanej krawędzi o .

+0

Dzięki za dodatkowe informacje. Nie potrzebuję go dzisiaj, ale zrobię to w przyszłości. –

3

Jeśli używasz żadnego motywu niestandardowego dla ProgressDialog, Następnie można dodać tag poniżej xml do stylu w pliku style.xml z motywu niestandardowego

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