Comment faire pour contrôler la largeur et la hauteur de l'Alerte par défaut dans la boîte de Dialogue Android?
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Title");
builder.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show();
}
});
AlertDialog alert = builder.create();
Je suis en utilisant le code ci-dessus pour afficher une boîte de Dialogue d'Alerte. Par défaut, il remplit l'écran en largeur et wrap_content en hauteur.
Comment puis-je contrôler la largeur et la hauteur par défaut de la boîte de dialogue d'alerte ?
J'ai essayé:
alert.getWindow().setLayout(100,100); //It didn't work.
Comment obtenir la mise en page params dans la fenêtre d'alerte et de définir manuellement la largeur et la hauteur?
InformationsquelleAutor sat | 2010-12-10
Vous devez vous connecter pour publier un commentaire.
Seulement un léger changement dans la Sat Code, définir la mise en page après
show()
méthode deAlertDialog
.Ou vous pouvez le faire à ma façon.
height
etwidth
qui prennent en charge pour tous les Périphériques.Ok , je peux contrôler la largeur et la hauteur en utilisant le Générateur de classe.
J'ai utilisé
show()
ici.Avant d'essayer de régler la taille de la post-mise en page, vérifiez d'abord que le style de votre boîte de dialogue de l'aide. Assurez-vous que rien dans le style de l'arbre définit
Si c'est le cas, il est tout aussi simple que de fournir votre propre style à l' [constructeur constructeur qui prend en themeResId](http://developer.android.com/reference/android/app/AlertDialog.Builder.html#AlertDialog.Builder(android.content.Context, int)) de l'API disponibles 11+
Cela fonctionne aussi bien en ajoutant
.getWindow().setLayout(width, height)
aprèsshow()
Si vous voulez ajouter de la dynamique de la largeur et de la hauteur en fonction de votre dispositif de châssis, vous pouvez faire ces calculs et affecter la hauteur et la largeur.
P. S : Afficher la boîte de dialogue d'abord, puis essayez de modifier la disposition de fenêtres attributs
Je ne sais pas si vous pouvez modifier la valeur par défaut de la hauteur/largeur de AlertDialog mais si vous voulais le faire, je pense que vous pouvez le faire en créant votre propre boîte de dialogue personnaliser. Vous avez juste à donner
android:theme="@android:style/Theme.Dialog"
dans l'android manifest.xml pour votre activité, et peut écrire l'ensemble de la mise en page selon vos besoins. vous pouvez définir la hauteur et la largeur de votre dialogue personnalisée à partir de l'Android de Ressources XML.Pour ceux qui vont trouver ce fil comme moi, ici, est de l'OMI meilleure solution (note de 70%, ce qui définit min largeur de la boîte de dialogue en pourcentage de la largeur de l'écran):
Et ensuite appliquer ce style à la boîte de dialogue:
Apprécier répondu par Sid en raison de sa dynamique, mais je tiens à ajouter quelque chose.
Ce que si vous souhaitez modifier la largeur seulement, la hauteur seront comme il est.
J'ai fait comme suit:
Ici, j'ai utilisé
alert.getWindow().getAttributes().height
de garder la hauteur comme il est deAlertDialog
etWidth
seront modifiés par la résolution de l'écran.Espère qu'il vous aide. Merci.
Je pense que tir38 la réponse est la solution la plus propre. Avoir à l'esprit que si vous utilisez android.app.AlerDialog et holo thèmes de votre style devrait ressembler à ceci
Et si vous utilisez le support.v7.app.AlertDialog ou androidx.appcompat.app.AlertDialog avec AppCompat le thème de votre style devrait ressembler à ceci