simple_animations 简单的实现动画

106 阅读1分钟

pub.dev/packages/si…

flutter pub add simple_animations

flutter动画插件simple_animations(FadeAnimation)找不到MultiTrackTween,Track,ControlledAnimation关键字

simple_animations: ^5.0.2

enum AniProps { opacity, translateY }

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

  FadeAnimation(this.delay, this.child);

  @override
  Widget build(BuildContext context) {
    final tween = MovieTween()
      ..tween(
        AniProps.opacity,
        Tween(begin: 0.0, end: 1.0),
        duration: const Duration(milliseconds: 300),
        curve: Curves.easeIn,
      )
      ..tween(
        AniProps.translateY,
        Tween(begin: -30.0, end: 0.0),
        duration: const Duration(milliseconds: 300),
        curve: Curves.easeOut,
      );

    return PlayAnimationBuilder(
      delay: Duration(milliseconds: (500 * delay).round()),
      duration: tween.duration,
      tween: tween,
      child: child,
      builder: (context, child2, animation) => Opacity(
        opacity: child2.get(AniProps.opacity),
        child: Transform.translate(
            offset: Offset(0, child2.get(AniProps.translateY)), child: child),
      ),
    );
  }
}