Pracuję nad aplikacją dla systemu Android i muszę wiedzieć, jak zmienić pozycję okna dialogowego postępu. Potrzebuję go umieścić na dole ekranu, zamiast na środku, jak to jest domyślnie.Jak zmienić pozycję okna dialogowego postępu?
Odpowiedz
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);
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ść.
to won” t wyświetlić okno dialogowe na dole ekranu. Może przenieść treść na dół widoku rodzica. –
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 .
Dzięki za dodatkowe informacje. Nie potrzebuję go dzisiaj, ale zrobię to w przyszłości. –
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>
Dzięki! Działa świetnie. – oliverwhite