Flutter 在运行时改变动画控制器上的持续时间

问题描述 投票:0回答:1

我有一个功能正常的动画控制器,可以从 4 小时的开始时间开始倒计时。 我可以启动计时器、暂停计时器并再次恢复计时器,所有这些都工作正常。

controller = AnimationController(
  vsync: this,
  duration: const Duration(seconds: 14400),
);

我现在想做的只是简单地添加按钮,例如在计时器运行时“从当前剩余时间中删除 5 分钟”。

在我看来,逻辑上的东西看起来像这样:

setState(() {
  controller.duration = controller.duration - 300;
});

但是我似乎找不到办法做到这一点。 我所做的一切似乎都不起作用。 有什么想法吗?

flutter animationcontroller
1个回答
0
投票

天哪,老实说,我在发帖之前花了一个小时,然后我尝试的下一件事就成功了。 对于遇到此问题的其他人来说,这就是有效的方法:

controller.duration = 持续时间(秒: ((controller.duration!.inSeconds *controller.value) - 300).round());

© www.soinside.com 2019 - 2024. All rights reserved.