Flutter 如何暂停定时器一旦创建颤振
我使用的是一个小部件,但一旦它创建了小部件,它就会立即开始倒计时。 我有一个控制器,它有一个.pause方法可以工作。 在创建小部件之后,我如何调用pause函数 我怎么能马上暂停呢 类MyWidget扩展了无状态Widget{ 最终倒计时控制器=倒计时控制器; @凌驾 小部件构建上下文上下文{ 返回倒计时 controller:controller,//controller.pause将暂停它 秒:20, build:context,double time=>Texttime.toString, 间隔:持续时间毫秒:100, 未完成:{ 打印“计时器已完成!”; }, ; } }Flutter 如何暂停定时器一旦创建颤振,flutter,Flutter,我使用的是一个小部件,但一旦它创建了小部件,它就会立即开始倒计时。 我有一个控制器,它有一个.pause方法可以工作。 在创建小部件之后,我如何调用pause函数 我怎么能马上暂停呢 类MyWidget扩展了无状态Widget{ 最终倒计时控制器=倒计时控制器; @凌驾 小部件构建上下文上下文{ 返回倒计时 controller:controller,//controller.pause将暂停它 秒:20, build:context,double time=>Texttime.toString
该库没有禁止自动启动的功能,但是您可以在库之外实现一些功能来实现类似的效果 您可以将无状态小部件转换为有状态小部件,并在未启动倒计时时使用标志构建纯文本,否则构建倒计时
class MyWidget extends StatefulWidget {
@override
_MyWidgetState createState() => _MyWidgetState();
}
class _MyWidgetState extends State<MyWidget> {
bool started = false;
final CountdownController controller = CountdownController();
final int seconds = 20;
@override
Widget build(BuildContext context) {
return !_started //< ==== When you set this to true, countdown will start
? Text(seconds)
: Countdown(
controller: controller,
seconds: seconds,
build: (context, double time) => Text(time.toString()),
interval: Duration(milliseconds: 100),
onFinished: () {
print('Timer is done!');
},
);
}
}
我最后稍微改变了一下图书馆。谢谢你的建议。这是我想到的另一个选择。。。但我觉得这更简单。肯定是一个有效的选择。。。您可能希望建议所有者将该请求合并到pull请求中。
setState(() => started = true);