J'ai une fonction pour ouvrir un J'ai besoin d'un moyen de Fermez cette boîte de dialogue après que toutes les données sont téléchargées, sans l'utilisation de clic ou sur le bouton pour la fermer. Comment puis-je atteindre cela? P> P> alertdialog code> pour empêcher l'utilisateur de toucher ou de changer lorsque l'application reçoit des données du serveur:
3 Réponses :
Un simple navigator.of (contexte) .pop (); code> fait le tour p>
Cela dépend de l'endroit où vous déclenchez la fonction de données de récupération
Exemple simple - IMPÉRATIF: P>
_processing() async {
await showDialog(
context: context,
builder: (BuildContext context) {
// replace "Future.delayed(Duration(seconds: 5))" with your API call
Future.delayed(Duration(seconds: 5)).then((_) {
Navigator.of(context).pop();
});
return AlertDialog(
backgroundColor: Colors.transparent,
elevation: 0,
content: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
CircularProgressIndicator(
valueColor: AlwaysStoppedAnimation<Color>(Colors.white),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
"Hi",
style: TextStyle(color: Colors.white),
),
)
],
),
);
},
);
}
Je pense que votre question est de savoir comment savoir quand devriez-vous le renvoyer. Lorsque vous démarrez la demande de _mainbloc code>, vous devez également écouter du flux à l'intérieur de _mainbloc code>. Vérifiez les données de réponse et vous pouvez utiliser l'une des opérations suivantes pour rejeter votre boîte de dialogue: Navigator.of(context).pop();
Navigator.pop(context);