Я сделал простое AlertDialog
в своей деятельности :
View view = layoutInflater.inflate(R.layout.my_dialog, null);
AlertDialog infoDialog = new AlertDialog.Builder(MyActivity.this)
.setView(view)
.create();
infoDialog.show();
С приведенным выше кодом диалоговое окно отображается в (примерно) центре экрана.
Мне интересно, как я могу настроить положение диалогового окна, чтобы оно отображалось только под верхней панелью действий? (Есть ли способ изменить гравитацию или что-то в диалоге?) И как это сделать на основе моего кода ??
Ответы:
Я использовал этот код, чтобы показать диалог внизу экрана:
Этот код также не позволяет Android затемнять фон диалогового окна, если вам это нужно. Вы должны иметь возможность изменить параметр гравитации, чтобы переместить диалоговое окно
источник
wlp.x
иwlp.y
поле в явном виде установить местоположение диалога на экране. Сам не пробовал, но наверное должно сработать.вы можете настроить диалог на основе параметров гравитации и макета, изменить гравитацию и параметры макета в соответствии с вашими требованиями
источник
'FILL_PARENT'
устарела. Я использую API 21. Согласно справочнику разработчикаЯ нашел этот фрагмент кода из кода @gypsicoder здесь
Здесь значение позиции x - это пиксели слева направо. Для позиции y значение снизу вверх.
источник
Для меня это сработало довольно хорошо, когда я пытался разместить свой диалог где-нибудь точно в нижней части текстового представления, где он был выбран.
источник
Новое
BottomSheetDialog
:источник
просто добавьте это в свой код:
источник
источник
Для своей деятельности в диалоге я использовал вот это:
источник
я использую этот метод
источник
используйте bottomSHeet:
источник
источник