#java #android
#java #Android
Вопрос:
Я показываю диалоговое окно в своем мобильном приложении, используя расширенный класс AbstractDialogFragment. Как мне установить ширину в соответствии с размером экрана?
Я уже пытался переопределить метод onResume () и задать ширину и высоту, получив размеры окна, но я хотел бы установить только ширину.
Вот что я попробовал:
@Override
public void onResume()
{
super.onResume();
Window window = getDialog().getWindow();
// ...
// get window width and height
// ...
window.setLayout(width, height);
window.setGravity(Gravity.CENTER);
}
Я ожидаю, что ширина диалоговых окон будет относительно ширины экрана.
Ответ №1:
вы можете установить высоту диалога с помощью этого кода или вы можете проверить это
Window window = dialog.getWindow();
WindowManager.LayoutParams wlp = window.getAttributes();
wlp.gravity = Gravity.CENTER;
window.setAttributes(wlp);
dialog.getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT);
Комментарии:
1. Я попробовал это, используя getDialog () вместо dialog, но это не изменило ширину.
Ответ №2:
Попробуйте вот так:
Dialog dialog = getDialog();
if (dialog != null) {
int width = ViewGroup.LayoutParams.MATCH_PARENT;
int height = ViewGroup.LayoutParams.MATCH_PARENT;
Objects.requireNonNull(dialog.getWindow())
.setFlags(
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
Objects.requireNonNull(dialog.getWindow()).setLayout(width, height);
}
Комментарии:
1. То же самое :/ Я запустил его в режиме отладки, а ширина и высота равны -1. Есть идеи?