Flutter:如何将 TweenAnimation 应用于 Transform 的多个属性?
Flutter: How to apply TweenAnimation to multiple properties of Transform?
我正在使用 Transform 移动和缩放容器。
Transform(
transform: Matrix4.identity()
..translate(20, 20, 0.0)
..scale(0.9, 1.0, 1.0),
child: _buildContainer(customColor),
)
我可以使用 TweenAnimationBuilder 生成器将动画添加到转换或缩放,如下所示:
TweenAnimationBuilder(
tween: Tween<Double>(begin: 0, end: 20),
duration: Duration(seconds: 2),
builder: (_, double translateVal, __) {
return Transform(
translate: Matrix4.identity()
..translate(translateVal, translateVal, 0.0)
..scale(0.9, 1.0, 1.0),
child: _buildContainer(customColor),
);
}
)
上面的代码有效,我可以类似地将它添加到缩放中,但只能通过从翻译中删除动画。如何添加动画以一起平移和缩放?由于 TweenAnimationBuilder 的补间参数仅采用单个开始值和结束值,而不是不同开始值和结束值的列表,然后我可以将其分配给变换的不同属性。
在Flutter中,要添加多个动画,我们可以使用所谓的Staggered Animation。我为 2 个属性创建了 2 个补间 - 平移和缩放,然后动画由 AnimationController 控制。
使用交错动画,可以同时或按顺序在单个元素(如容器)上执行多个动画。
我正在使用 Transform 移动和缩放容器。
Transform(
transform: Matrix4.identity()
..translate(20, 20, 0.0)
..scale(0.9, 1.0, 1.0),
child: _buildContainer(customColor),
)
我可以使用 TweenAnimationBuilder 生成器将动画添加到转换或缩放,如下所示:
TweenAnimationBuilder(
tween: Tween<Double>(begin: 0, end: 20),
duration: Duration(seconds: 2),
builder: (_, double translateVal, __) {
return Transform(
translate: Matrix4.identity()
..translate(translateVal, translateVal, 0.0)
..scale(0.9, 1.0, 1.0),
child: _buildContainer(customColor),
);
}
)
上面的代码有效,我可以类似地将它添加到缩放中,但只能通过从翻译中删除动画。如何添加动画以一起平移和缩放?由于 TweenAnimationBuilder 的补间参数仅采用单个开始值和结束值,而不是不同开始值和结束值的列表,然后我可以将其分配给变换的不同属性。
在Flutter中,要添加多个动画,我们可以使用所谓的Staggered Animation。我为 2 个属性创建了 2 个补间 - 平移和缩放,然后动画由 AnimationController 控制。
使用交错动画,可以同时或按顺序在单个元素(如容器)上执行多个动画。