web-dev-qa-db-fra.com

Comment supprimer la barre de titre du dialogue d'alerte

Je suis le code this pour créer un dialogue personnalisé, mais je ne comprends pas comment supprimer la barre de titre du dialogue.

  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;

      .......

}

Je sais que pour supprimer la zone de titre du dialogue d'alerte, nous devons utiliser requestWindowFeature(Window.FEATURE_NO_TITLE);

Mais je ne sais pas où je dois placer au-dessus de la ligne?

21
Sun

Si vous ne voulez pas de barre de titre dans la boîte de dialogue d'alerte, supprimez simplement la ligne ci-dessous du code.

dialogbuilder.setTitle("Login");

Si cela ne fonctionne toujours pas, ajoutez la ligne ci-dessous.

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

Utilisez dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); avant dialog.setContentView(R.layout.logindialog); en masquant le titre de Dialog.

20
user4050065

Utilisez dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);

5
Yogesh Rathi

Commencez par supprimer cette ligne: 

dialogbuilder.setTitle("Login");

Ajoutez ensuite celui-ci: 

dialogbuilder.requestWindowFeature(Window.FEATURE_NO_TITLE);
3
serabile

il suffit d'enlever 

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

Essaye ça::

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

Référez-vous ici

2
vijay

Je n'ai pas trouvé .requestWindowFeature avec AlertDialog Builder.

Si vous ne souhaitez pas avoir de titre lors de la construction d'un dialogue d'alerte avec un générateur, utilisez new AlertDialog.Builder(getContext(), Android.R.style.Theme_Material_Light_Dialog_NoActionBar_MinWidth);.

1
Alan

Finalement, sur un smartphone Motorola Droid Razr M (AOS 4.4), ces approches ne fonctionnent pas et je pense qu’il existe d’autres smartphones comme celui-ci sur le marché. Le seul effet obtenu de:

        setTitle(null);
        setCustomTitle(null);

est que ce titre n'a pas de texte mais que sa vue persiste dans la vue de dialogue (ressemble à une vue vide en haut). Donc, le seul moyen que j'ai trouvé est basé sur cette réponse :

        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