Je voudrais exécuter une fonction après un certain délai après la construction de mon widget. Quelle est la manière idiomatique de faire cela dans Flutter?
Ce que j'essaie de réaliser: j'aimerais commencer avec un widget FlutterLogo
par défaut, puis changer sa propriété style
après une certaine durée.
Deviner ????
class AnimatedFlutterLogo extends StatefulWidget {
@override
State<StatefulWidget> createState() => new _AnimatedFlutterLogoState();
}
class _AnimatedFlutterLogoState extends State<AnimatedFlutterLogo> {
Timer _timer;
FlutterLogoStyle _logoStyle = FlutterLogoStyle.markOnly;
_AnimatedFlutterLogoState() {
_timer = new Timer(const Duration(milliseconds: 400), () {
setState(() {
_logoStyle = FlutterLogoStyle.horizontal;
});
});
}
@override
void dispose() {
super.dispose();
_timer.cancel();
}
@override
Widget build(BuildContext context) {
return new FlutterLogo(
size: 200.0,
textColor: Palette.white,
style: _logoStyle,
);
}
}
Vous pouvez utiliser Future.delayed
pour exécuter votre code après un certain temps. par exemple.:
_Future.delayed(const Duration(milliseconds: 500), () {
// Here you can write your code
setState(() {
// Here you can write your code for open new view
});
});
_
Dans la fonction setState, vous pouvez écrire un code associé à l'interface utilisateur de l'application, par exemple. actualiser les données d'écran, changer le texte de l'étiquette, etc.