import 'base/BaseState.dart';
import 'configs/IconConfig.dart';
import 'package:flutter/material.dart';
import 'package:wflugin/Config.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
class RotateTransitionView extends StatefulWidget{
@override
State<StatefulWidget> createState() {
// TODO: implement createState
return _RotateTransitionView();
}
}
class _RotateTransitionView extends BaseState<RotateTransitionView> with TickerProviderStateMixin/*SingleTickerProviderStateMixin*/{
AnimationController _animationController;
AnimationController _animationControllerBack;
@override
void initState() {
// TODO: implement initState
super.initState();
_animationController = AnimationController(
duration: Duration(seconds: 6),
vsync: this,
);
_animationController.addStatusListener((status) {
if(status == AnimationStatus.completed){// 动画执行完成
_animationController.reset();
_animationController.forward();
}
});
_animationController.forward();
_animationControllerBack = AnimationController(
duration: Duration(seconds: 0),
reverseDuration: Duration(seconds: 5),
vsync: this,
);
_animationControllerBack.addStatusListener((status) {
if(status == AnimationStatus.completed){// 动画执行完成
_animationControllerBack.reverse();
}else if(status == AnimationStatus.dismissed){
_animationControllerBack.reset();
_animationControllerBack.forward();
}
});
_animationControllerBack.forward();
}
@override
void dispose() {
// TODO: implement dispose
_animationController.dispose();
_animationControllerBack.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
// TODO: implement build
return onActivityCreate(context);
}
@override
onActivityCreate(BuildContext context) {
// TODO: implement onActivityCreate
return Stack(
children: [
RotationTransition(
child: getTabImageall(IconConfig.img_outer_ring),
turns: _animationControllerBack),
RotationTransition(
child: Container(
padding: EdgeInsets.all(ScreenUtil().setWidth(30)),
child: getTabImageall(IconConfig.img_center_ring),
),
turns: _animationController),
RotationTransition(
child: Container(
padding: EdgeInsets.all(ScreenUtil().setWidth(60)),
child: getTabImageall(IconConfig.img_inner_ring),
),
turns: _animationControllerBack)
],
);
}
}
图片: