我试图在Android中生成一个自定义对话框。 我像这样创建我的Dialog:

dialog = new Dialog(this);
dialog.setContentView(R.layout.my_dialog);

除了对话框的标题,一切都很好。 即使我没有设置对话框的标题,对话框弹出窗口在对话框的位置有一个空白。

有没有办法隐藏对话的这一部分?

我尝试了一个AlertDialog,但似乎布局设置不正确:

LayoutInflater inflater = 
    (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.map_dialog, null);

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setView(view);

// dialog = new Dialog(this);
// dialog.setContentView(R.layout.map_dialog);

dialog = builder.create();

((TextView) dialog.findViewById(R.id.nr)).setText(number);

如果我使用这段代码,我在最后一行得到一个空指针异常。对话框不是空,所以我试图检索的TextView不存在。 如果我取消注释我使用对话框构造函数的部分,一切正常,但对话框布局上面的标题。


当前回答

dialog_custom .requestWindowFeature (Window.FEATURE_NO_TITLE);

这将从剪切对话框中删除标题。

注意在添加内容之前先添加这些行。对如

     dialog_custom = Dialog(activity!!)
    dialog_custom.requestWindowFeature(Window.FEATURE_NO_TITLE)
    dialog_custom.setContentView(R.layout.select_vehicle_type)
    dialog_custom.setCanceledOnTouchOutside(false)
    dialog_custom.setCancelable(true)

其他回答

使用生成器将标题设置为空字符串。

    Builder builder = new AlertDialog.Builder(context);
    builder.setTitle("");
...
    builder.show();

将整个对话框的“gravity”属性设置为“center”。然后,您将需要覆盖对话框中所有不希望居中的子组件的设置。

您可以删除标题

dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);

其中dialog是我的对话框的名称。

我不知道这个问题是否仍然存在,但在我的情况下,当我从Dialog切换到DialogFragment时,

requestWindowFeature(Window.FEATURE_NO_TITLE);

不是一个选择,但我可以用

setStyle(STYLE_NO_TITLE, 0);

结果是一样的。

在setcontentview之前使用以下代码

    Dialog dialog = new Dialog(this);
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    dialog.setContentView(R.layout.custom_dialog);

注:你必须有以上代码,顺序和行相同。 requestWindowFeature必须在setContentView行之前。