web-dev-qa-db-ja.com

アラートダイアログのタイトルバーを削除する方法

私は 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);を使用する必要があります

しかし、私が行の上に配置しなければならない場所がわかりませんか?

21
Sun

警告ダイアログのタイトルバーが必要ない場合は、コードから次の行を削除します。

dialogbuilder.setTitle("Login");

それでも動作しない場合は、以下の行を追加します。

dialogbuilder.requestWindowFeature(Window.FEATURE_NO_TITLE);
28
Niranj Patel

dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);の前にdialog.setContentView(R.layout.logindialog);を使用すると、Dialogのタイトルを非表示にできます。

20
user4050065

dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);を使用

5
Yogesh Rathi

最初にこの行を削除します:

dialogbuilder.setTitle("Login");

次に、これを追加します。

dialogbuilder.requestWindowFeature(Window.FEATURE_NO_TITLE);
3
serabile

削除するだけ

dialogbuilder.setTitle("Login");
2
Ravi Rupareliya

これを試して::

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

こちらを参照

2
vijay

AlertDialog Builderで_.requestWindowFeature_が見つかりませんでした。

ビルダーでアラートダイアログを作成するときにタイトルを付けたくない場合は、new AlertDialog.Builder(getContext(), Android.R.style.Theme_Material_Light_Dialog_NoActionBar_MinWidth);を使用します

1
Alan

最終的には、Motorola Droid Razr M(AOS 4.4)スマートフォンでは、これらのアプローチは機能せず、このような他のsmatphoneが市場に存在すると思います。以下から得られる唯一の効果:

        setTitle(null);
        setCustomTitle(null);

タイトルにはテキストはありませんが、そのビューはダイアログビューに残ります(上部の空のビューのように見えます)。だから私が見つけた唯一の方法は この答え に基づいています:

        int titleId = getContext().getResources().getIdentifier( "alertTitle", "id", "Android" );
        if (titleId > 0) {
            View dialogTitle = findViewById(titleId);
            if (dialogTitle != null) {
                ((View)dialogTitle.getParent().getParent()).setVisibility(View.GONE);
            }
        }
0
Stan