希望全屏显示 AlertDialog,但是,实际效果是 AlertDialog 还是只占了屏幕的一小部分

发布时间:2026/7/27 23:13:28
希望全屏显示 AlertDialog,但是,实际效果是 AlertDialog 还是只占了屏幕的一小部分 AlertDialog.BuilderbuildernewAlertDialog.Builder(this);builder.setTitle(系统提示);builder.setMessage(确定退出吗);builder.setPositiveButton(确定,(dialog,which)-{Toast.makeText(this,点击了确定,Toast.LENGTH_SHORT).show();});builder.setNegativeButton(取消,(dialog,which)-{Toast.makeText(this,点击了取消,Toast.LENGTH_SHORT).show();});AlertDialogalertDialogbuilder.create();WindowwindowalertDialog.getWindow();if(window!null){window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT);}alertDialog.show();在 Android 开发中执行上述代码希望全屏显示 AlertDialog但是实际效果是 AlertDialog 还是只占了屏幕的一小部分问题原因AlertDialog 受到了默认样式的约束即使设置了宽高为MATCH_PARENT系统仍会限制其最大尺寸AlertDialog 设计初衷是小弹窗不适合全屏场景建议改用普通 Dialog 自定义布局处理策略改用普通 Dialog 自定义布局?xml version1.0 encodingutf-8?LinearLayoutxmlns:androidhttp://schemas.android.com/apk/res/androidandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:gravitycenterandroid:orientationverticalandroid:paddingStart20dpandroid:paddingTop40dpandroid:paddingEnd20dpandroid:paddingBottom40dpTextViewandroid:idid/tv_titleandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:gravitycenterandroid:texttitleandroid:textSize25dp/TextViewandroid:idid/tv_messageandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:layout_marginTop20dpandroid:gravitycenterandroid:textmessageandroid:textSize20dp/LinearLayoutandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:layout_marginTop20dpandroid.widget.Buttonandroid:idid/btn_confirmandroid:layout_width0dpandroid:layout_heightwrap_contentandroid:layout_marginRight5dpandroid:layout_weight1android:textconfirmandroid:textColorcolor/black/android.widget.Buttonandroid:idid/btn_cancelandroid:layout_width0dpandroid:layout_heightwrap_contentandroid:layout_marginLeft5dpandroid:layout_weight1android:textcancelandroid:textColorcolor/black//LinearLayout/LinearLayoutDialogdialognewDialog(this);dialog.setContentView(R.layout.custom_dialog);TextViewtvTitledialog.findViewById(R.id.tv_title);TextViewtvMessagedialog.findViewById(R.id.tv_message);ButtonbtnConfirmdialog.findViewById(R.id.btn_confirm);ButtonbtnCanceldialog.findViewById(R.id.btn_cancel);tvTitle.setText(系统提示);tvMessage.setText(确定退出吗);btnConfirm.setOnClickListener(v-{Toast.makeText(this,点击了确定,Toast.LENGTH_SHORT).show();dialog.dismiss();});btnCancel.setOnClickListener(v-{Toast.makeText(this,点击了取消,Toast.LENGTH_SHORT).show();dialog.dismiss();});Windowwindowdialog.getWindow();if(window!null){window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT);}dialog.show();