web-dev-qa-db-fra.com

Comment faire pour exécuter le code après un certain délai dans Flutter?

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.

33
Bradley Campbell

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,
    );
  }
}
40
Bradley Campbell

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.

49
Rahul Sharma