Je travaille sur l'application où je voulais afficher la boîte de dialogue pour être la taille de l'écran. J'ai donc utilisé le code ci-dessous.J'ai eu la solution via ici message d'alerte N'affiche pas dans la boîte de dialogue d'alerte?
AlertDialog.Builder builder = new AlertDialog.Builder(this); TextView title = new TextView(this); title.setText("DM2"); title.setBackgroundColor(Color.DKGRAY); title.setPadding(10, 10, 10, 10); title.setGravity(Gravity.CENTER); title.setTextColor(Color.WHITE); title.setTextSize(20); TextView text = new TextView(this); text.setText("Hello This text"); text.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); text.setTextSize(20); text.setGravity(Gravity.CENTER); //Creates a linearlayout layout and sets it with initial params LinearLayout ll = new LinearLayout(this); ll.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); ll.setGravity(Gravity.CENTER); ll.addView(text); builder.setCustomTitle(title); builder.setPositiveButton( "Ok", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dialog.dismiss(); } }); Dialog d = builder.setView(ll).create(); //Fills up the entire Screen WindowManager.LayoutParams lp = new WindowManager.LayoutParams(); lp.copyFrom(d.getWindow().getAttributes()); lp.width = WindowManager.LayoutParams.FILL_PARENT; lp.height = WindowManager.LayoutParams.FILL_PARENT; d.show(); d.getWindow().setAttributes(lp);
6 Réponses :
Essayez d'utiliser Android: Layout_gravity = "Centre" au lieu d'Android: Gravity = "Centre" ... Il peut être utile pour vous ..
<activity android:theme="@android:style/Theme.Dialog" android:name=".Splash"> </activity>
Pour une boîte de dialogue personnalisée, vous pouvez faire une seule chose, rendre votre écran entier comme l'écran d'activité et ajouter le thème: @dialog dans AndroidManifest.xml .. Que tout votre contenu s'affiche sous la forme d'une boîte de dialogue.
J'ai eu le Malerdialog? .Window? .Setlayout étiré au parent correspondant, mais je voulais centrer l'alertdialog elle-même à l'écran. Utiliser layout_gravity au lieu de gravité travaillée pour moi!
Cela fonctionne pour moi:
lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
@pushpa: hé, essayez Gravity Center en définissant la hauteur à enveloppe_content
@unReachable: j'ai essayé cela affichera la boîte de dialogue au centre, j'ai vue avec 3 boutons en arrière-plan et je veux cacher cette vue. La teneur en panne de hauteur ne cachera pas la vue d'arrière-plan.
@pushpa: hé dans ce cas, vous pouvez faire l'arrière-plan de votre popup non transparente, vous pouvez utiliser GetWindow (). Ressources de ferbackDrawable (android.r.color.bl Black);
Peut-être que cela fonctionne:
Je me luttais avec la même chose, et après avoir du mal à se battre pendant des heures. ce résultat p> plus tôt, je créais le dilaoge comme ceci: - p> après ajout de style "Aucun titre de titre", il a commencé à récupérer la mise en page de la façon dont j'avais Créé. P> Pour cela, vous devez créer la mise en page avec les paramètres "FLIDPARENT"
et créer le dialogue comme celui-ci p> ce qui précède est une partie de codage p> vous dans et donnez votre propriété de layouche ex: - / p> et si vous ne voulez pas manquer "Titre", vous pouvez l'avoir dans votre mise en page personnalisée comme textview .. p> espère que cela vous aidera. .
Comme cela m'a aidé :) p> p> mise en page code> pièce
Placez toute votre mise en page dans
relativenelayout code> p>
android: layout_centerinparent = "vrai" code> p> p>
Je suis petit tard, mais mieux tard, alors jamais :-)
Vous pouvez utiliser le code ci-dessous: (j'ai vu aussi ici ) espoir je aidé ... p> p>
Jolie réponse, j'utilise window.setlayout (layoutparams.wrap_content, layoutparams.wrap_content) code> au lieu de "fenêtre.setlayout (layoutparams.wrap_content, layoutparams.match_content) ', ça marche bien, merci.
J'ai utilisé ce style pour afficher des dialogues dans Center Android
<style name="CustomDialogue" parent="Theme.MaterialComponents.Dialog"> <item name="android:windowIsTranslucent">true</item> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowNoTitle">true</item> <item name="android:layout_gravity">center</item> <item name="android:minWidth" type="dimen">600dp</item> <item name="android:layout_margin" type="dimen">8dp</item> </style>
Avez-vous essayé d'écrire D.Getwindow (). Setattributes (LP); avant d.Show (); ?
J'ai essayé mais il ne affichera pas la boîte d'alerte à la taille de la fenêtre