如何删除android列表警报对话框中的额外空间

时间:2012-08-27 14:00:43

标签: android android-alertdialog

我正在尝试使用单项选项显示示例警报对话框并面临问题 列表结尾后的额外空格。

这是我的代码

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();

sample alert dialog with single choice items

建议我解决这个问题。

2 个答案:

答案 0 :(得分:1)

您可以拥有自己的对话框布局(请参阅文档),但我建议保留原样,因为此对话框在HC / ICS / JB上的外观会有所不同,因此调整其外观非常糟糕,因为在其他它的版本可能看起来不同。这就是操作系统的方式。留下这是我的建议。

答案 1 :(得分:0)

当我构建自定义警报对话框时,我遇到了类似的问题。 为了解决这个问题,我不得不使用主题来摆脱剩余的空间。 以下是我遵循的代码:

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;
    }

根据文档here,遵循android.R.style.Theme_DeviceDefault_Panel的使用情况:

  

这将删除所有无关的窗口装饰,因此您基本上拥有   一个空矩形,用于放置您的内容。它使窗口   漂浮,透明背景,并关闭后面的调光   窗口。