如何删除android列表警报对话框中的额外空间
我试图显示带有单选项的示例警报对话框,但遇到了以下问题: 列表结束后的额外空间 这是我的密码如何删除android列表警报对话框中的额外空间,android,android-alertdialog,Android,Android Alertdialog,我试图显示带有单选项的示例警报对话框,但遇到了以下问题: 列表结束后的额外空间 这是我的密码 final CharSequence[] items = {"Red", "Green", "Blue"}; AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setTitle("Pick a color"); builder.setSingleChoiceIt
final CharSequence[] items = {"Red", "Green", "Blue"};
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("Pick a color");
builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
Toast.makeText(context, items[item], Toast.LENGTH_SHORT).show();
}
});
AlertDialog alert = builder.create();
alert.show();
建议我解决这个问题。你可以有自己的对话框布局(见文档),但我建议保持原样,因为这个对话框在HC/ICS/JB上的外观会有所不同,所以调整它的外观是一个非常糟糕的主意,因为在安卓的其他版本上,它可能看起来会有所不同。操作系统就是这样做的。这是我的建议。在构建自定义警报对话框时,我也遇到过类似的问题。 为了解决这个问题,我不得不使用主题来去除剩余的空间。 以下是我遵循的代码:
private Dialog getCustomDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(this, android.R.style.Theme_DeviceDefault_Panel);
AlertDialog dialog = builder.create();
dialog.setView(dialogView, 0, 0, 0, 0);
return dialog;
}
根据文档,android.R.style.Theme\u DeviceDefault\u面板的用法如下所示:
private Dialog getCustomDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(this, android.R.style.Theme_DeviceDefault_Panel);
AlertDialog dialog = builder.create();
dialog.setView(dialogView, 0, 0, 0, 0);
return dialog;
}
这将删除所有无关的窗口装饰,因此基本上
用于放置内容的空矩形。它能打开窗户
浮动,具有透明背景,并关闭后面的调光
窗户
我认为唯一的方法是用自己的自定义对话框布局创建对话框。这里是文档:看看你是否能从这个问题中得到一些东西:正如你所说的,它将取决于操作系统,我想这是为什么,因为我没有改变任何属性,只是使用默认属性。但我不能在我的应用程序中使用它,因为它看起来不太好,所以我创建了一个自定义对话框来满足我的要求。