import 'package:flutter/material.dart'; import '../../utils/size_fit.dart'; class Loading extends StatefulWidget { const Loading({Key? key}) : super(key: key); @override State createState() => _LoadingState(); } class _LoadingState extends State with SingleTickerProviderStateMixin { AnimationController? controller; @override void initState() { // TODO: implement initState super.initState(); controller = AnimationController( vsync: this, duration: const Duration(milliseconds: 400)); controller!.addStatusListener((status) { if (status == AnimationStatus.completed) { controller!.reset(); controller!.forward(); } else if (status == AnimationStatus.dismissed) {} }); controller!.forward(); } @override void dispose() { controller!.dispose(); super.dispose(); } @override Widget build(BuildContext context) { SizeFit.initialize(context); return RotationTransition( turns: controller!, alignment: Alignment.center, child: Image.asset( 'assets/images/toast_loading.png', width: 48.px, height: 48.px, ), ); } }