首页 > 解决方案 > 为什么 .tweenTo() 不是 double 类型的定义器?

问题描述

我有一个简单的应用程序,它ListView使用gestureDetector. 我想要实现的是,当页面在应用程序上加载时,项目出现淡入淡出效果,因此它显示第一个项目,然后是第二个项目,依此类推。(具有平滑的效果)。

我有以下代码:

enum _AniProps { opacity, translateX }

class FadeIn extends StatelessWidget {
  final double delay;
  final Widget child;

  FadeIn(this.delay, this.child);

  @override
  Widget build(BuildContext context) {
    final tween = MultiTween<_AniProps>()
      ..add(_AniProps.opacity, 0.0.tweenTo(1.0))
      ..add(_AniProps.translateX, 130.0.tweenTo(0.0));

    return PlayAnimation<MultiTweenValues<_AniProps>>(
      delay: (300 * delay).round().milliseconds,
      duration: 500.milliseconds,
      tween: tween,
      child: child,
      builder: (context, child, value) => Opacity(
        opacity: value.get(_AniProps.opacity),
        child: Transform.translate(
          offset: Offset(value.get(_AniProps.translateX), 0),
          child: child,
        ),
      ),
    );
  }
}

我用这个 FadeIn 小部件包装每个 ListItems,每个都有不同的延迟。

前任:

FadeIn(1.0, GestureDector(........)),

我得到的错误如下:

"lib/FadeIn.dart:17:36: Error: The method 'tweenTo' isn't defined for the class 'double'.
Try correcting the name to the name of an existing method, or defining a method named 'tweenTo'.
      ..add(_AniProps.opacity, 0.0.tweenTo(1.0))"

请帮忙。

标签: flutter

解决方案


我面临着类似的问题。我不知道为什么没有定义 'tweenTo',但是尝试:Tween(begin: 0.0, end: 1.0)andTween(begin: 130.0, end: 0.0)相反,看看它是否有帮助。


推荐阅读