设置秒表的毫秒数

时间:2019-06-07 11:45:44

标签: flutter dart

我目前正在使用Flutter时间跟踪应用程序,在该应用程序中使用dart:core中的Stopwatch类。因此,我想设置秒表的初始值。

但是,所有字段,例如elapsedMilliseconds都是只读的。

所以这不起作用:

_stopwatch.elapsedMilliseconds = 5000

是否可以更改Stopwatch类,所以我可以在创建时或动态设置经过的时间。

1 个答案:

答案 0 :(得分:0)

您发现的StopWatch类不可能做到这一点;它旨在非常简单,因此只需实现启动/停止/重置。

如果您希望能够创建具有附加功能(如初始值,更改经过时间等)的秒表,那么建议您编写包装器类。可能是这样的:

class StopwatchEx {

  final Stopwatch _stopWatch = Stopwatch();
  Duration _initialOffset;

  StopwatchEx({Duration initialOffset = Duration.zero}):
    _initialOffset = initialOffset;

  start() => _stopWatch.start();

  stop() => _stopWatch.stop();

  reset({Duration newInitialOffset = null}) {
    _stopWatch.reset();
    _initialOffset = newInitialOffset ?? _initialOffset;
  }

  Duration get elapsed => _stopWatch.elapsed + _initialOffset;

  ...
}