我目前正在开发一个 Flutter Time Tracking 应用程序,我在其中使用 dart:core 中的 Stopwatch 类。因此,我想设置秒表的初始值。
但是,像 elapsedMilliseconds 这样的所有字段都是只读的。
所以这不起作用:
_stopwatch.elapsedMilliseconds = 5000
是否可以更改秒表类,以便我可以设置创建时的耗时或动态设置。
最佳答案
正如您所发现的,这对于 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;
...
}
关于flutter - 设置秒表的毫秒数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56493711/