flutter动画组件 2020-10-29 13-DecoratedBoxTransition Catalogue 效果: 代码: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061class GMExampleDecoratedBoxTransitionTest extends StatefulWidget { GMExampleDecoratedBoxTransitionTest({Key key}) : super(key: key); @override _GMExampleDecoratedBoxTransitionTestState createState() => _GMExampleDecoratedBoxTransitionTestState();}class _GMExampleDecoratedBoxTransitionTestState extends State<GMExampleDecoratedBoxTransitionTest> with SingleTickerProviderStateMixin { AnimationController _animationController; Animation _animation; @override void initState() { _animationController = AnimationController(duration: Duration(seconds: 1), vsync: this); _animation = DecorationTween( begin: BoxDecoration( color: Colors.red, borderRadius: BorderRadius.circular(15), ), end: BoxDecoration( color: Colors.blue, borderRadius: BorderRadius.circular(55), ), ).animate(_animationController); _animationController.addStatusListener((AnimationStatus status) { if (status == AnimationStatus.completed) { _animationController.reverse(); } else if (status == AnimationStatus.dismissed) { _animationController.forward(); } }); //开始动画 _animationController.forward(); super.initState(); } @override Widget build(BuildContext context) { return DecoratedBoxTransition( decoration: _animation, child: Container( height: 100, width: 100, ), ); } @override void dispose() { _animationController.dispose(); super.dispose(); }}