如何删除警报对话框标题栏

时间:2015-02-23 06:18:24

标签: android android-alertdialog

我正在关注this代码来创建自定义对话框,但我没有得到如何删除对话框标题栏?

  AlertDialog alertDialog;

   @Override
   protected Dialog onCreateDialog(int id) {

      AlertDialog dialogDetails = null;

      switch (id) {
      case DIALOG_LOGIN:

       LayoutInflater inflater = LayoutInflater.from(this);
       View dialogview = inflater.inflate(R.layout.dialog_layout, null);

           AlertDialog.Builder dialogbuilder = new AlertDialog.Builder(this);
           dialogbuilder.setTitle("Login");
           dialogbuilder.setView(dialogview);
           dialogDetails = dialogbuilder.create();

           break;
          }

      return dialogDetails;
     }

     @Override
     protected void onPrepareDialog(int id, Dialog dialog) {

      switch (id) {
      case DIALOG_LOGIN:
      alertDialog = (AlertDialog) dialog;

      .......

}

我知道要删除警报对话框的标题区域,我们必须使用requestWindowFeature(Window.FEATURE_NO_TITLE);

但是我不知道我必须放在哪里?

10 个答案:

答案 0 :(得分:28)

如果您不想在警告对话框中使用标题栏,则只需从代码中删除以下行。

dialogbuilder.setTitle("Login");

如果仍然无效,请添加以下行。

dialogbuilder.requestWindowFeature(Window.FEATURE_NO_TITLE);

答案 1 :(得分:20)

dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);之前使用dialog.setContentView(R.layout.logindialog);,这样您就可以隐藏Dialog的标题。

答案 2 :(得分:5)

使用def end_other(s1,s2): return bool(re.search(s1+'$',s2,re.I)) or bool(re.search(s2+'$',s1,re.I))

答案 3 :(得分:3)

首先删除此行:

dialogbuilder.setTitle("Login");

然后添加这个:

dialogbuilder.requestWindowFeature(Window.FEATURE_NO_TITLE);

答案 4 :(得分:2)

删除

dialogbuilder.setTitle("Login");

答案 5 :(得分:2)

试试这个::

AlertDialog.Builder builder;
AlertDialog alertDialog;

Context mContext = getApplicationContext();
LayoutInflater inflater = (LayoutInflater)
        mContext.getSystemService(LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.custom_dialog,
        (ViewGroup) findViewById(R.id.layout_root));

TextView text = (TextView) layout.findViewById(R.id.text);
text.setText("Hello, this is a custom dialog!");
ImageView image = (ImageView) layout.findViewById(R.id.image);
image.setImageResource(R.drawable.android);

builder = new AlertDialog.Builder(mContext);
builder.setView(layout);
alertDialog = builder.create();

Refer here

答案 6 :(得分:1)

我找不到使用AlertDialog Builder的.requestWindowFeature

如果您在使用构建器构建警报对话框时不想拥有标题,请使用new AlertDialog.Builder(getContext(), android.R.style.Theme_Material_Light_Dialog_NoActionBar_MinWidth);

答案 7 :(得分:0)

最终,在摩托罗拉Droid Razr M(AOS 4.4)智能手机上,这些方法无效,我相信市场上还有其他类似的手机。唯一的影响来自:

self.tabBar.isTranslucent = false

该标题没有文字,但其视图仍然存在于对话框视图中(看起来像顶部的空视图)。所以我找到的唯一方法是基于this answer

        setTitle(null);
        setCustomTitle(null);

答案 8 :(得分:0)

使用具有自定义布局的对话框,它肯定会起作用

final Dialog dialog = new Dialog(this);
            dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
            dialog.setContentView(R.layout.custom_layout);
            Button btOk = dialog.findViewById(R.id.btOk);
            Button btCancel = dialog.findViewById(R.id.btCancel);
            btOk.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    //To Do
                    dialog.dismiss();
                }
            });
            btCancel.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    dialog.dismiss();
                }
            });
            dialog.setCancelable(false);
            dialog.show();

custom_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <Button
        android:id="@+id/btOk"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Ok" />
    <Button
        android:id="@+id/btCancel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Cancel" />
</LinearLayout>

答案 9 :(得分:-4)

使用此

AlertDialog.Builder dialogbuilder = new AlertDialog.Builder(this);
           dialogbuilder .requestWindowFeature(Window.FEATURE_NO_TITLE);
           dialogbuilder.setView(dialogview);
           dialogDetails = dialogbuilder.create();