2

我刚刚在 Null Safety 中迁移了我的颤振应用程序。一切似乎都运行良好,除了下面的代码:

Animatable<Color> animColorPend = TweenSequence<Color>([
  TweenSequenceItem(
    weight: 1.0,
    tween: ColorTween(
      begin: Colors.purple,
      end: Colors.white,
    ) as Animatable<Color>,
  ),
  TweenSequenceItem(
    weight: 1.0,
    tween: ColorTween(
      begin: Colors.white,
      end: Colors.purple,
    ) as Animatable<Color>,
  ),
]);

演员(作为 Animatable)抛出此错误:

类型“ColorTween”不是类型转换中“Animatable”类型的子类型

以前(当我使用 --no-sound-null-safety 运行应用程序时)我没有收到此错误。这可能是一个尚未实现的错误,正如这里所说的(https://flutter.dev/docs/null-safety

并非 Flutter SDK 的所有部分都支持 null 安全性,因为某些部分仍需要额外的工作才能迁移到 null 安全性。

或者你认为代码中有什么东西?我尝试的一切(删除演员表、初始化 TweenSequence 而不是抽象类等等)都不起作用。谢谢您的帮助!

4

1 回答 1

1

出于某种我不明白的原因,您必须使颜色可为

尝试这个:

Animatable<Color> animColorPend = TweenSequence([
  TweenSequenceItem(
    weight: 1.0,
    tween: ColorTween(
      begin: Colors.purple,
      end: Colors.white,
    ) as Animatable<Color?>,
  ),
  TweenSequenceItem(
    weight: 1.0,
    tween: ColorTween(
      begin: Colors.white,
      end: Colors.purple,
    ) as Animatable<Color?>,
  ),
]);
于 2021-08-24T16:11:59.230 回答