添加颜色过渡
Add color transitions
我正在尝试制作一种颜色,使颜色从绿色变为琥珀色再变为红色。在升级到 null-safety 之前,以下代码工作正常,但现在它抛出错误...
TweenSequence<Color>([
TweenSequenceItem(weight: 0.5, tween: ColorTween(begin: Colors.green, end: Colors.green)),
TweenSequenceItem(weight: 0.25, tween: ColorTween(begin: Colors.green, end: Colors.amber)),
TweenSequenceItem(weight: 0.25, tween: ColorTween(begin: Colors.amber, end: Colors.red)),
])
我收到以下错误:
The argument type 'ColorTween' can't be assigned to the parameter type
'Animatable
我做错了什么,我该如何解决?
更新:
AnimationController(duration: Duration(seconds: 10), vsync: this).drive(TweenSequence<Color?>([
TweenSequenceItem(weight: 0.5, tween: ColorTween(begin: Colors.green, end: Colors.green)),
TweenSequenceItem(weight: 0.25, tween: ColorTween(begin: Colors.green, end: Colors.amber)),
TweenSequenceItem(weight: 0.25, tween: ColorTween(begin: Colors.amber, end: Colors.red)),
]));
如果您查看 ColorTween
的继承,您会发现它是 Animatable<Color?>
的子类型,而您的 TweenSequence
使用不兼容的 Color
泛型。
只需将 Color
更改为 Color?
:
TweenSequence<Color?>([
TweenSequenceItem(weight: 0.5, tween: ColorTween(begin: Colors.green, end: Colors.green)),
TweenSequenceItem(weight: 0.25, tween: ColorTween(begin: Colors.green, end: Colors.amber)),
TweenSequenceItem(weight: 0.25, tween: ColorTween(begin: Colors.amber, end: Colors.red)),
])
我正在尝试制作一种颜色,使颜色从绿色变为琥珀色再变为红色。在升级到 null-safety 之前,以下代码工作正常,但现在它抛出错误...
TweenSequence<Color>([
TweenSequenceItem(weight: 0.5, tween: ColorTween(begin: Colors.green, end: Colors.green)),
TweenSequenceItem(weight: 0.25, tween: ColorTween(begin: Colors.green, end: Colors.amber)),
TweenSequenceItem(weight: 0.25, tween: ColorTween(begin: Colors.amber, end: Colors.red)),
])
我收到以下错误:
The argument type 'ColorTween' can't be assigned to the parameter type 'Animatable
我做错了什么,我该如何解决?
更新:
AnimationController(duration: Duration(seconds: 10), vsync: this).drive(TweenSequence<Color?>([
TweenSequenceItem(weight: 0.5, tween: ColorTween(begin: Colors.green, end: Colors.green)),
TweenSequenceItem(weight: 0.25, tween: ColorTween(begin: Colors.green, end: Colors.amber)),
TweenSequenceItem(weight: 0.25, tween: ColorTween(begin: Colors.amber, end: Colors.red)),
]));
如果您查看 ColorTween
的继承,您会发现它是 Animatable<Color?>
的子类型,而您的 TweenSequence
使用不兼容的 Color
泛型。
只需将 Color
更改为 Color?
:
TweenSequence<Color?>([
TweenSequenceItem(weight: 0.5, tween: ColorTween(begin: Colors.green, end: Colors.green)),
TweenSequenceItem(weight: 0.25, tween: ColorTween(begin: Colors.green, end: Colors.amber)),
TweenSequenceItem(weight: 0.25, tween: ColorTween(begin: Colors.amber, end: Colors.red)),
])