我是Flutter和移动应用程序开发的新手。
我有一个AnimationController,它的持续时间在变化时会填充一个空的圆周长。它将用于在体育应用中观看时间。动画绘制的圆基本上像this。
AnimationController控制器驻留在didChangeDependencies()中。动画会不断重复,直到_numberOfSets为0。完成一组设置后,我想将控制器的持续时间更改为_restTime并重新启动动画。在restTime完成之后,我想切换回_workTime持续时间,并从集合数中减去1。它应该一直循环工作,直到_numberOfSets ==0。您能帮我解决这个问题吗?
controller = AnimationController(
vsync: this,
duration: Duration(seconds: _workTime),
)..addStatusListener((AnimationStatus status) {
if (_numberOfSets > 0 && status == AnimationStatus.dismissed) {
if (controller.isAnimating) {
controller.stop(canceled: true);
} else {
controller.duration = Duration(milliseconds: _restTime);
controller.reverse(
from: controller.value == 0.0 ? 1.0 : controller.value);
}
}
if (_numberOfSets > 0 && status == AnimationStatus.completed) {
setState(() {
_numberOfSets--;
});
}
});