AnimatedSwitcher 中的两个 Flutter 转换之间需要延迟
Need delay between two Flutter transitions in AnimatedSwitcher
我需要在 AnimatedSwitcher transitionBuilder 中的两个转换之间有一个短暂的延迟。我试过 Future.delayed,但它 return 不是一个小部件。我应该使用什么?
AnimatedSwitcher(
duration: Duration(seconds: 1),
transitionBuilder: (
Widget child,
Animation<double> animation,
) {
return SlideTransition(
position: Tween<Offset>(
begin: Offset(0.0, 0.1),
end: Offset(0, 0))
.animate(animation),
child: FadeTransition(
opacity: animation,
child: child,
),
);
},
child: quizStep(quiz, screenWidth),
),
FadeTransition 必须在 SlideTransition 之后几秒执行。
在您使用淡入淡出和缩放动画的情况下,动画将同时开始和停止。
但是你可以使用交错动画,你会在这里找到更多关于它的信息:https://flutter.dev/docs/development/ui/animations/staggered-animations
解决方案是
FadeTransition(
opacity: Tween<double>(begin: 0.0, end: 1.0).animate(
CurvedAnimation(
parent: animation,
curve: Interval(0.5, 1.0),
),
),
child: child,
),
间隔曲线是告诉动画什么时候开始,什么时候结束。
该值应在 0.0 和 1.0 之间,因为它是动画值,0.5 将在动画时间的一半时间(半秒)后开始动画,您应该调整它并找到适合您需要的最佳值。
我需要在 AnimatedSwitcher transitionBuilder 中的两个转换之间有一个短暂的延迟。我试过 Future.delayed,但它 return 不是一个小部件。我应该使用什么?
AnimatedSwitcher(
duration: Duration(seconds: 1),
transitionBuilder: (
Widget child,
Animation<double> animation,
) {
return SlideTransition(
position: Tween<Offset>(
begin: Offset(0.0, 0.1),
end: Offset(0, 0))
.animate(animation),
child: FadeTransition(
opacity: animation,
child: child,
),
);
},
child: quizStep(quiz, screenWidth),
),
FadeTransition 必须在 SlideTransition 之后几秒执行。
在您使用淡入淡出和缩放动画的情况下,动画将同时开始和停止。 但是你可以使用交错动画,你会在这里找到更多关于它的信息:https://flutter.dev/docs/development/ui/animations/staggered-animations
解决方案是
FadeTransition(
opacity: Tween<double>(begin: 0.0, end: 1.0).animate(
CurvedAnimation(
parent: animation,
curve: Interval(0.5, 1.0),
),
),
child: child,
),
间隔曲线是告诉动画什么时候开始,什么时候结束。 该值应在 0.0 和 1.0 之间,因为它是动画值,0.5 将在动画时间的一半时间(半秒)后开始动画,您应该调整它并找到适合您需要的最佳值。