我如何知道推送新页面时过渡动画已经完成

时间:2019-12-04 03:53:14

标签: flutter

当推送新页面时,我将数据加载到initState中。这导致过渡动画期间出现口吃。这个问题在Android上尤为严重。

在本机反应中,我可以使用

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

扑动中是否有类似的方法。让我知道过渡动画完成了吗?

1 个答案:

答案 0 :(得分:0)

在目标页面中,您可以获得ModalRoute的实例。 ModalRoute有一个animation属性,可让addStatusListener对动画生命周期事件做出反应。

以下示例可以为您提供帮助:

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);
..