Comment puis-je mettre le feu à un événement lors d'un clic se produit à l'extérieur d'une boîte de dialogue
Je voudrais savoir comment résoudre un problème que j'ai eu.
J'ai une boîte de Dialogue qui apparaît dans une activité. La boîte de Dialogue ne permet pas de couvrir la totalité de l'écran, de sorte que les boutons de l'activité montrent encore. Je peux facilement fermer la boîte de dialogue lorsqu'il y a un contact à l'extérieur de la boîte de dialogue limites avec dialog.setCanceledOnTouchOutside(true);
Cependant, ce que je veux faire est de tirer un événement si un clic est à l'extérieur de la boîte de Dialogue limites (e.g si quelqu'un touche un bouton sur l'Activité principale, il doit fermer la boîte de Dialogue et l'incendie de l'événement en même temps).
- La solution normale serait de rendre la boîte de dialogue modale. Pourquoi ne voulez-vous pas le faire?
- Merci. J'essaie de montrer une webview(dans le dialogue) au sein de mon activité principale, de sorte qu'il maintient l'application de la regarder.
Vous devez vous connecter pour publier un commentaire.
Cela Fonctionne Pour moi,,
Voir ce http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#FLAG_NOT_TOUCH_MODAL
Quand
dialog.setCanceledOnTouchOutside(true);
alors que vous venez de remplaceronCancel()
comme ceci:Tapez votre code à l'intérieur de la
onCancel()
méthode de sorte qu'il s'exécute lorsque la boîte de dialogue sera annulé.When dialog.setCanceledOnTouchOutside(true);
c'est le comportement par défaut...Vous pouvez utiliser un OnCancelListener pour déclencher un événement lors d'un clic se produit à l'extérieur d'une boîte de dialogue:
Si vous êtes dans une classe de boîte de dialogue personnalisée, et souhaitez retirer et cliquez à l'extérieur de l'événement - remplacer les annuler(). Si vous voulez attraper dialogue "fermée" de l'événement - remplacer les rejeter().
Je recommande l'insertion de la logique AVANT super.rejeter(). Kotlin exemple: