Comment obtenir la boîte de dialogue taille?
Je suis à la recherche d'un moyen d'obtenir la taille d'une boîte de dialogue personnaliser. Je suis passé par cette question, mais la seule réponse donnée est assez inutile, parce que si j'essaie mDialog.getWindow().getAttributes().height;
il ne renvoie -2, ce qui est une constante pour WRAP_CONTENT
attribut que j'ai mis dans la boîte de dialogue. Comment puis-je obtenir la taille de celui-ci. Je veux savoir le siye pour l'image de fond.
ce dialogue exactement utilisez-vous?
public class ControlOverlay s'étend de Dialogue, il suffit donc de Dialogue
public class ControlOverlay s'étend de Dialogue, il suffit donc de Dialogue
OriginalL'auteur slezadav | 2012-11-22
Vous devez vous connecter pour publier un commentaire.
En fait, Android, et il ne fonctionne pas comme dans iOS, vous ne pouvez pas obtenir la taille de la
View
lui-même, ce que vous pouvez faire, cependant, est de demander la taille de la RACINE mise en page de ce point de vue.par exemple:
myDialog.this.findViewById(R.id.dialog_root_layout).getHeight());
Je reçois
dialog_root_layout cannot be resolved or is not a field
pour unAlertDialog
.Au lieu de mettre dialog_root_layout vous devez insérer l'ID de votre boîte de dialogue.
Ooops, je comprends maintenant ce que tu voulais dire. Cependant, j'ai eu quelques problèmes avec votre suggestion: tout d'Abord, j'obtiens une erreur
myDialog cannot be resolved to a type
. Deuxièmement, myDialog est créé avec unfinal AlertDialog myDialog = builder.create()
, et il n'y a pas desetID
méthode pour uneAlertDialog
, alors comment puis-je obtenir sa racine, mise en page ID? Merci!OriginalL'auteur Michal
Faire un essai:
Cela ne fonctionne pas pour moi. Je reçois 0.
public void onWindowFocusChanged(boolean possèdefocus) { super.onWindowFocusChanged(possèdefocus); //appel }
OriginalL'auteur Korniltsev Anatoly
@Kormilsev Anatoliy a répondu à corriger et je suis un peu améliorer.
Ainsi, dans la classe que vous hériter de la classe de boîte de Dialogue de substituer la méthode:
cette
alertDialog.setOnShowListener(new DialogInterface.OnShowListener()
fonctionneraOui. C'est une décision pour la plupart du temps utilisé AlertDialogs.
OriginalL'auteur CodeToLife