| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- import 'package:flutter/material.dart';
- import '../../utils/size_fit.dart';
- class Loading extends StatefulWidget {
- const Loading({Key? key}) : super(key: key);
- @override
- State<Loading> createState() => _LoadingState();
- }
- class _LoadingState extends State<Loading> 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,
- ),
- );
- }
- }
|