在创建 AlertDialog 时,指定对话框使用 WRAP_CONTENT 属性以限制它的宽度,如下所示:
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("Title")
.setMessage("Message")
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// 从这里处理正向按钮点击事件
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// 在这里处理负向按钮点击事件
}
});
Dialog dialog = builder.create();
dialog.getWindow().setLayout(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
dialog.show();
在这个示例中,我们在调用 dialog.getWindow().setLayout() 方法时将宽度设置为 WRAP_CONTENT。这将使对话框以适合内容的大小显示,而不是占满整个屏幕。
请注意,在某些情况下,宽度可能仍然超出屏幕的可用空间,从而使对话框显示异常。在这些情况下,您可能需要使用适当的布局和样式来进一步调整对话框的外观。