我目前正在使用Flutter时间跟踪应用程序,在该应用程序中使用dart:core中的Stopwatch类。因此,我想设置秒表的初始值。
但是,所有字段,例如elapsedMilliseconds都是只读的。
所以这不起作用:
_stopwatch.elapsedMilliseconds = 5000
是否可以更改Stopwatch类,所以我可以在创建时或动态设置经过的时间。
答案 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;
...
}