【发布时间】:2021-09-14 08:00:15
【问题描述】:
我正在寻找一种在 Flutter 中结合重复动画和非重复动画的方法。例如,开始打开动画(不重复),然后显示一些重复的动画,比如弹跳动画。目前,我在一个小部件上使用了 2 个动画控制器和 2 个动画构建器。这是我的示例代码:
@override
Widget build(BuildContext context) {
return AnimatedBuilder(
animation: _outerAnimationController, //starting animation, not repetitive
builder: (context, _) {
return AnimatedBuilder(
animation: _innerCurvedAnimation, //repetitive animation, bouncing
builder: (context, _) {
return CustomPaint(
size: Size(MediaQuery.of(context).size.width,
MediaQuery.of(context).size.height),
painter: ShowCasePainter(
centerPosition: Offset(
MediaQuery.of(context).size.width / 2,
MediaQuery.of(context).size.height / 2),
innerCircleRadius: widget.innerCircleRadius +
(_innerCurvedAnimation.value * PaddingSmall), //repetitive animation value, bouncing
outerCircleRadius: _outerAnimationTween.value, //starting animation value, not repetitive
),
);
});
});
}
以这种方式使用多个控制器是一种好习惯吗?如何从代表不同动画的两个控制器影响 animatedBuilder?
感谢您的帮助!
【问题讨论】:
-
检查
Listenable.mergector -
你能给我一些更详细的答案吗?
-
请发表您的评论作为答案,我会检查它是否正确!
-
如果
Listenable.merge为您工作,请随意写一个自我回答