comment mettre à jour le widget parent après la fermeture de showDialog dans Flutter?
Nov 29 2020
J'ai un widget avec une icône lorsque je clique dessus, un widget de dialogue s'affiche, voici l'appel pour la boîte de dialogue:
// this icon is in widget parent
IconButton(
icon: Icon(
Icons.info_outline,
size: mobileWidth * 0.07,
),
tooltip: 'information',
color: Colors.blueGrey,
onPressed: () {
showAlertInfo(context, code);
setState(() {});
},
),
voici mon dialogue:
showAlertInfo(BuildContext context, String code) {
showDialog(
context: context,
builder: (context) {
return StatefulBuilder(
builder: (context, setState) {
return AlertDialog(
title: Text(
"Information sur le client $code", ),
content: SingleChildScrollView(
child: Container( .....
/* ...
this dialog has some operations that changes info
values of the widget that called this in first place
it is a big code to put here*/
// here I have a close button
actions: [
FlatButton(
child: Text(
"Fermer",
style: TextStyle(
color: Colors.red,
fontSize: mobileWidth * 0.035,
fontWeight: FontWeight.bold,
),
),
onPressed: () {
Navigator.of(context).pop(); // dismiss dialog
},
),
],
);
ce que j'essaie de réaliser, c'est que lorsque la boîte de setState
dialogue est fermée, je veux que le widget parent soit mis à jour, alors comment appeler le widget parent lorsque le widget de dialogue est fermé?
Réponses
2 TahaMalik Nov 29 2020 at 06:58
Pour la fonction Async
Ajoutez await
avant showDialog()
et appelez setState((){})
sur la ligne suivante.
await showDialog(
context: context,
builder: (context) {
return yourWidget;
}
);
setState((){});
Pour la fonction de synchronisation
Utilisez le .then()
rappel et appelez- setState((){})
le.
showDialog(
context: context,
builder(context) {
return yourWidget;
}).then((_){
setState((){});
}
);