import 'package:flutter/material.dart'; import 'package:simple_animations/simple_animations.dart'; class AnimatedBackground extends StatelessWidget { AnimatedBackground( this.animateColors, this.lastColor, this.begin, this.end, this.duration, ); final List animateColors; final Color lastColor; final Alignment begin, end; final int duration; @override Widget build(BuildContext context) { final tween = MultiTrackTween([ Track("color1").add(Duration(seconds: this.duration), ColorTween(begin: this.animateColors[0], end: this.animateColors[1])), ]); return ControlledAnimation( playback: Playback.MIRROR, tween: tween, duration: tween.duration, builder: (context, animation) { return Container( decoration: BoxDecoration( gradient: LinearGradient( begin: this.begin, end: this.end, colors: [animation["color1"], this.lastColor])), ); }, ); } }