Zrobiłem proste AlertDialog
w mojej aktywności :
View view = layoutInflater.inflate(R.layout.my_dialog, null);
AlertDialog infoDialog = new AlertDialog.Builder(MyActivity.this)
.setView(view)
.create();
infoDialog.show();
W przypadku powyższego kodu okno dialogowe jest wyświetlane w (mniej więcej) środku ekranu.
Zastanawiam się, jak mogę dostosować pozycję okna dialogowego, aby wyświetlało się tuż pod górnym paskiem akcji? (Czy jest jakaś zmiana grawitacji czy coś w tym oknie?) I jak to zrobić na podstawie mojego kodu?
Odpowiedzi:
Użyłem tego kodu, aby wyświetlić okno dialogowe u dołu ekranu:
Ten kod zapobiega również przyciemnianiu tła okna dialogowego przez system Android, jeśli jest to potrzebne. Powinieneś być w stanie zmienić parametr grawitacji, aby przesunąć okno dialogowe
źródło
wlp.x
i,wlp.y
aby jawnie ustawić lokalizację okna dialogowego na ekranie. Sam tego nie próbowałem, ale prawdopodobnie powinno działać.możesz dostosować swoje okno dialogowe w oparciu o grawitację i parametry układu, zmienić grawitację i parametr układu zgodnie z wymaganiami
źródło
'FILL_PARENT'
jest przestarzałe. Jestem na API 21. Zgodnie z informacją dla programistówZnalazłem ten fragment kodu z kodu @gypsicoder tutaj
Tutaj wartość pozycji x to piksele od lewej do prawej. Dla pozycji y wartość jest od dołu do góry.
źródło
Dla mnie to zadziałało całkiem nieźle, gdy próbowałem umieścić moje okno dialogowe dokładnie w dolnej części widoku tekstu, gdzie zostało wybrane.
źródło
Nowy
BottomSheetDialog
:źródło
po prostu dodaj to do swojego kodu:
źródło
źródło
Do mojej aktywności w Dialogu użyłem tego:
źródło
używam tej metody
źródło
użyj bottomSHeet:
źródło
źródło