4 votes

Comment puis-je savoir que l'animation de transition est terminée lorsque je pousse une nouvelle page ?

Lorsque je pousse une nouvelle page, je charge les données dans initState. Il en résulte un bégaiement pendant l'animation de transition. Ce problème est particulièrement grave sur Android.

Dans react native, je peux utiliser

InteractionManager.runAfterInteractions (() => {
           // ... do some time-consuming operations ...
});

Existe-t-il une méthode similaire dans Flutter ? Pour savoir si l'animation de transition est terminée ?

8voto

Bruno Leroux Points 21

Dans votre page de destination, vous pouvez obtenir une instance de ModalRoute . ModalRoute dispose d'un animation exposant la propriété addStatusListener pour réagir aux événements du cycle de vie de l'animation.

L'exemple suivant peut vous aider :

Widget build(BuildContext context) {
    var route = ModalRoute.of(context);

    // Defining an internal function to be able to remove the listener
    void handler(status) {
      if (status == AnimationStatus.completed) {
        print('Animation completed !');
        route.animation.removeStatusListener(handler);
      }
    }

    route.animation.addStatusListener(handler);
..

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X