扑灭英雄动画后开始动画

时间:2019-05-10 14:55:07

标签: android ios dart flutter flutter-animation

我正在构建画廊应用,该应用在列表/网格中显示项目,并在按下该按钮时会转换为详细视图。我正在使用英雄动画作为主要图像元素,并且希望在英雄转换完成后(在工厂中淡入淡出,在文本中滑动等)对局部视图的一部分进行动画处理。

是否可以使用任何属性或回调来收听英雄动画更新并像onAnimationEnd这样的动画中启动我的动画?

我知道在将视图推到屏幕上之后,我可以“破解”解决方案并在动画300ms中开始淡入淡出(据我所记得,这是英雄动画的默认持续时间),但感觉不对。

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用Future?

// added:
class BookFilteredListSerializer(serializers.ListSerializer):
    def to_representation(self, data):
        data = data.visible_to(self.context['request'].user)
        return super(BookFilteredListSerializer, self).to_representation(data)

// And then reference this from the actual BookSerializer meta:
class WorkSerializer(serializers.ModelSerializer):

     ...

     class Meta:
         model = Work
         list_serializer_class = WorkFilteredListSerializer
         fields = (...)

计算Hero动画的时间,并将其设置为Duration的延迟。

在initState()内部调用函数

然后,您可以将小部件像这样包装在AnimatedOpacity小部件中,直到延迟时间,所有内容都将被隐藏起来,一旦结束,它们将像淡入淡出。

double opacity = 0;

Future < void > showAfter() async {
  await Future.delayed(Duration(seconds: 3), () {
    print('delay completed');
  });
  setState(() {
    opacity = 1;
  });
}

您可以设置不同的曲线和持续时间