AlertDialog由于某种原因全屏显示

时间:2019-05-14 10:20:47

标签: java android alertdialog androidx

我通过按导航抽屉中的按钮来构建和显示标准的简单AlertDialog,并带有“活动”的上下文,出于未知的原因,它显示全屏,但是我需要在中心显示标准的对话框。

这是我的代码(相同的代码可以在我的应用程序的其他活动中正常工作):

new AlertDialog.Builder(mainActivity)
    .setTitle(mainActivity.getString(R.string.attention))
    .setPositiveButton(mainActivity.getString(R.string.exit), (dialog, which) -> {
        dialog.dismiss();
        mainActivity.finish();
    })
    .setNegativeButton(mainActivity.getString(R.string.cancel), (dialog, which) -> {
        dialog.dismiss();
    })
    .setMessage(mainActivity.getString(R.string.warnLogout))
    .create()
    .show();

2 个答案:

答案 0 :(得分:1)

问题是导入错误:我最近将项目迁移到AndroidX,并且在编写AlertDialog逻辑时错误地选择了旧版导入。似乎没有错误和警告显示,并且按钮按预期方式工作,但就我而言,它显示为错误的“全屏”布局对话框:

错误:

import android.app.AlertDialog;

右:

import androidx.appcompat.app.AlertDialog;

答案 1 :(得分:0)

请尝试使用此代码进行警告对话框。

 new AlertDialog.Builder(this)
                .setTitle("Alert")
                .setMessage("Hello This is Alert Dialog.")
                .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        dialogInterface.dismiss();
                    }
                }).setNegativeButton("No", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                dialogInterface.dismiss();
            }
        }).show();

输出: enter image description here