为什么Android AlertDialog没有占据屏幕的全高

时间:2017-01-18 18:36:03

标签: android

我正在学习Android Studio并面临Alertbox的问题。为什么警告框在背景中不是透明的全高?我搜索过它,但所有技巧都失败了。我是android studio的新手,所以你的一些解释对我有帮助。

这是我的代码。最后的图片显示图中的问题。

attachInterrupt(D4, doSth, CHANGE);

add_group_popup.xml

attachInterrupt(D4, doSth(), CHANGE);

enter image description here

4 个答案:

答案 0 :(得分:2)

对此我有完全相同的问题,最后我可以通过将AlertDialog替换为Dialog来解决此问题。

所以解决方案是这样的:

Dialog dialog = 
    new Dialog(
        this,
        android.R.style.Theme_DeviceDefault_Light_NoActionBar_Fullscreen
    );
dialog.setContentView(R.layout.yourCustomLayoutDialog);

希望获得帮助。

答案 1 :(得分:1)

您可以明确设置对话框的高度和宽度,使其与onStart

中的屏幕相匹配
public void onStart() {
  super.onStart();
  DisplayMetrics metrics = getResources().getDisplayMetrics();
  int width = metrics.widthPixels;
  int height = metrics.heightPixels;
  getDialog().getWindow().setLayout(width, height);
}

答案 2 :(得分:0)

当我在活动中编写类似这样的方法并从片段中使用它时偶然发现,它是全屏显示的。

public AlertDialog showAlert(String message) {
        AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.AppTheme);
        builder.setMessage(message);
        builder.setPositiveButton("OK", null);
        return builder.show();
}

答案 3 :(得分:0)

使用Window manager以编程方式设置对话框大小。

 WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
    lp.copyFrom(rate.getWindow().getAttributes());
    lp.width = WindowManager.LayoutParams.WRAP_CONTENT;
    lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
    alertdialog.show();
    alertdialog.getWindow().setAttributes(lp);