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?
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);
Utilisez dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
avant dialog.setContentView(R.layout.logindialog);
en masquant le titre de Dialog
.
Utilisez dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
Commencez par supprimer cette ligne:
dialogbuilder.setTitle("Login");
Ajoutez ensuite celui-ci:
dialogbuilder.requestWindowFeature(Window.FEATURE_NO_TITLE);
il suffit d'enlever
dialogbuilder.setTitle("Login");
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();
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);
.
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);
}
}