51 lines
1.2 KiB
Dart
51 lines
1.2 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:manager_app/constants.dart';
|
|
|
|
class LoadingCommon extends StatefulWidget {
|
|
const LoadingCommon({Key key}) : super(key: key);
|
|
|
|
@override
|
|
State<LoadingCommon> createState() => _LoadingCommonState();
|
|
}
|
|
|
|
class _LoadingCommonState extends State<LoadingCommon> with TickerProviderStateMixin {
|
|
AnimationController _controller;
|
|
|
|
@override
|
|
void initState() {
|
|
_controller = AnimationController(
|
|
duration: const Duration(milliseconds: 5000),
|
|
vsync: this,
|
|
)..repeat();
|
|
super.initState();
|
|
}
|
|
|
|
@override
|
|
void dispose() {
|
|
_controller.dispose();
|
|
super.dispose();
|
|
}
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
Size size = MediaQuery.of(context).size;
|
|
_controller.forward(from: 0.0);
|
|
_controller.addListener(() {
|
|
if (_controller.isCompleted) {
|
|
_controller.reverse();
|
|
}
|
|
if(_controller.isDismissed){
|
|
_controller.forward();
|
|
}
|
|
});
|
|
return Center(
|
|
child: RotationTransition(
|
|
turns: Tween(begin: 0.0, end: 3.0).animate(_controller),
|
|
child: Icon(Icons.museum_outlined, color: kPrimaryColor, size: size.height*0.1),
|
|
),
|
|
);
|
|
}
|
|
}
|
|
|
|
|