Flutter 如何暂停定时器一旦创建颤振

Flutter 如何暂停定时器一旦创建颤振,flutter,Flutter,我使用的是一个小部件,但一旦它创建了小部件,它就会立即开始倒计时。 我有一个控制器,它有一个.pause方法可以工作。 在创建小部件之后,我如何调用pause函数 我怎么能马上暂停呢 类MyWidget扩展了无状态Widget{ 最终倒计时控制器=倒计时控制器; @凌驾 小部件构建上下文上下文{ 返回倒计时 controller:controller,//controller.pause将暂停它 秒:20, build:context,double time=>Texttime.toString

我使用的是一个小部件,但一旦它创建了小部件,它就会立即开始倒计时。 我有一个控制器,它有一个.pause方法可以工作。 在创建小部件之后,我如何调用pause函数

我怎么能马上暂停呢

类MyWidget扩展了无状态Widget{ 最终倒计时控制器=倒计时控制器; @凌驾 小部件构建上下文上下文{ 返回倒计时 controller:controller,//controller.pause将暂停它 秒:20, build:context,double time=>Texttime.toString, 间隔:持续时间毫秒:100, 未完成:{ 打印“计时器已完成!”; }, ; } }
该库没有禁止自动启动的功能,但是您可以在库之外实现一些功能来实现类似的效果

您可以将无状态小部件转换为有状态小部件,并在未启动倒计时时使用标志构建纯文本,否则构建倒计时

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);