Kiedy pokazujemy AlertDialog na Androidzie, pokazuje się on na środku ekranu. Czy jest jakiś sposób na zmianę pozycji?
android
android-layout
android-ui
gypsicoder
źródło
źródło
wmlp.x = 100; //x position wmlp.y = 100;
po prostu zestaw grawitacjawmlp.gravity = Gravity.TOP | Gravity.LEFT;
jest na tyleJeśli na przykład chcesz przesunąć okno dialogowe postępu nieco niżej i nie ustawiać dokładnej pozycji piksela, to wystarczy:
źródło
Aby ustawienie miało efekt informacyjny, dodałem następujący kod
dialog.getWindow().setAttributes(wmlp);
po zmianie wartości wmlp w odpowiedzi gypsicodera lub ustawienie wmlp nie jest uwzględniane przez mój test.
źródło
Te odpowiedzi spowodują przesunięcie pozycji AlertDialog, jednak pozycja wyświetlanego okna dialogowego będzie również zawierać wypełnienie wokół okna.
Jeśli chcesz pozbyć się tego wypełnienia (na przykład, aby umieścić okno dialogowe równo z dolną częścią ekranu), będziesz również musiał nadpisać domyślny styl AlertDialog w swoim styles.xml, aby ustawić windowBackground na null, tak jak w poniższym przykładzie :
Oprócz ustawienia Window.LayoutParameters zgodnie z opisem w zaakceptowanej odpowiedzi.
Specjalne pozdrowienie dla @Davida Caunta, którego odpowiedź pod adresem: usuń obramowanie, dopełnienie z okna dialogowego uzupełniło ten obraz.
źródło