Flutter Dart错误:Dart(argument_type_not_assignable)

7
调用AnimationController的drive函数会导致以下错误信息:
“参数类型'ColorTween'无法赋值给参数类型'Animatable'”。
Animation<Color> animation = animationController.drive(ColorTween(begin: Colors.red, end: colors.blue));
是一个 Tween,而 的 Tween 是一个 Animatable。我应该如何解决这个错误?是 Color 后面的问号还是 dynamic 的问题?显式转换也无效:

在类型转换中,“ColorTween”类型不是“Animatable<Color>”类型的子类型

flutter 2.0.4 dart 2.12.2

1
@pskink 这个问题最终是由于赋值引起的。它需要是Animation<Color?>,因为ColorTween是一个Tween<Color?>。错误信息有点误导。 - Objective
是的,确实有误导性... 在我看来,他们应该更明确地指出null安全性是问题,而不是基本类型(Animatable)。 - pskink
2个回答

13

在这个赋值语句中,AnimationColor类型缺少'?',因为ColorTween是一个Tween<Color?>


3

可以试试这样做:

TweenSequenceItem(
  weight: 1.0,
  tween: ColorTween(
    begin: Colors.black,
    end: Colors.lightBlue,
  ) as Animatable<Color>,
)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接