import 'package:flutter/material.dart'; // ignore: must_be_immutable class FrameAnimationImage extends StatefulWidget { List assetList; double width,height; int interval = 200; FrameAnimationImage({ Key? key,required this.assetList,required this.width,required this.height, required this.interval }) : super(key: key); @override State createState() => _FrameAnimationImageState(); } class _FrameAnimationImageState extends State with SingleTickerProviderStateMixin{ late Animation animation; late AnimationController controller; @override void initState() { int imageCount = widget.assetList.length; int maxTime = widget.interval*imageCount; controller = AnimationController(vsync: this,duration: Duration(milliseconds: maxTime)); controller.addListener(() { setState(() { }); }); animation = Tween(begin: 0.0,end: imageCount.toDouble()).animate(controller)..addListener(() {setState(() { });}); controller.repeat(); super.initState(); } @override void dispose() { controller.dispose(); super.dispose(); } @override Widget build(BuildContext context) { int ix = animation.value.floor()%widget.assetList.length; List images = []; for (int i=0;i