【发布时间】:2022-01-19 21:08:10
【问题描述】:
刚开始学习 Flutter。尝试创建一个动画圆圈,该圆圈扩展和收缩 x 次然后终止。我该如何做到这一点?
目前,我的圆形动画正在无限循环中扩大然后收缩。任何指导表示赞赏。
class BreathingCircle extends StatefulWidget {
const BreathingCircle({Key? key}) : super(key: key);
@override
_BreathingCircleState createState() => _BreathingCircleState();
}
class _BreathingCircleState extends State<BreathingCircle>
with SingleTickerProviderStateMixin {
late final AnimationController _controller;
late final Animation<double?> _shapeSizeChanger;
// **** Currently this animation runs in endless loop. How can I get it to stop after
// x expansion-retraction cycles?
@override
void initState() {
super.initState();
_controller =
AnimationController(duration: const Duration(seconds: 2), vsync: this)
..repeat(reverse: true);
_shapeSizeChanger = Tween<double>(begin: 0, end: 300).animate(_controller)
..addListener(() {
setState(() {});
});
}
@override
Widget build(BuildContext context) {
return Container(
child: const AnimationBreather(), //Stack of shapes
width: _shapeSizeChanger.value,
height: _shapeSizeChanger.value,
);
}
@override
void dispose() {
_controller.dispose();
super.dispose();
}
}
【问题讨论】:
标签: flutter dart flutter-animation