gpt4 book ai didi

android - 在 flutter 英雄动画之后开始动画

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:27:54 25 4
gpt4 key购买 nike

我正在构建画廊应用程序,它在列表/网格中显示项目,并在按下它时转换到详细 View 。我正在为主要图像元素使用英雄动画,并且我想在完成英雄转换后为细节 View 的部分设置动画(淡入淡出,在文本中滑动等)。

是否有任何属性或回调可用于监听英雄动画更新并以 onAnimationEnd 之类的方式启动我的动画?

我知道我可以“破解”解决方案并在将 View 推送到屏幕后 300 毫秒(这是英雄动画的默认持续时间)开始我的淡入淡出动画,但感觉不对。

最佳答案

您尝试过使用 Future 吗?

double opacity = 0;

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

计算英雄动画的时间量并将其设置为 Duration 的延迟。

调用initState()里面的函数

然后你可以像这样将你的小部件包裹在一个 AnimatedOpacity 小部件中,直到延迟时间,所有东西都会在那里,它们只是被隐藏起来,一旦它结束,它就会像淡入淡出一样出现。

AnimatedOpacity(
duration: Duration(milliseconds: 300),
opacity: opacity,
child: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
children: < Widget > [
Text("Hello World"),
],
),
),
),

您可以使用不同的曲线和持续时间

关于android - 在 flutter 英雄动画之后开始动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56080124/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com