如何使AbstractDialogFragment扩展类的宽度与窗口宽度匹配?

时间:2019-03-27 13:25:11

标签: 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);
}

我希望对话框的宽度相对于屏幕宽度。

2 个答案:

答案 0 :(得分:0)

您可以使用此代码设置对话的高度,也可以选中this

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 :(得分:0)

尝试这样:

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);
}