J'ai la suivante AlertDialog
.
showDialog(
context: context,
child: new AlertDialog(
title: const Text("Location disabled"),
content: const Text(
"""
Location is disabled on this device. Please enable it and try again.
"""),
actions: [
new FlatButton(
child: const Text("Ok"),
onPressed: _dismissDialog,
),
],
),
);
Comment puis-je faire _dismissDialog()
rejeter dit AlertDialog
?
Navigator.pop()
devrait faire l'affaire. Vous pouvez également l'utiliser pour renvoyer le résultat de la boîte de dialogue (si elle a présenté des choix à l'utilisateur)
Navigator.of(context, rootNavigator: true).pop('dialog')
travaillé avec moi.
Vous pouvez utiliser l'un des éléments suivants:
Navigator.of(context).pop();
Navigator.pop(context);
Navigator.pop(_)
a fonctionné pour moi, mais la galerie de l'équipe Flutter contient un exemple utilisant:
Navigator.of(context, rootNavigator: true).pop()
qui fonctionne aussi, et je suis tenté de suivre leur exemple.
La réponse acceptée indique comment fermer une boîte de dialogue à l'aide de la classe de navigation. Pour fermer une boîte de dialogue sans utiliser Navigator, vous pouvez définir l'événement onPressed du bouton comme suit:
setState((){
thisAlertDialog = null;
});
Dans le cas où le code ci-dessus n'est pas explicite, il définit fondamentalement le parent AlertDialog du FlatButton sur null et le supprime.