flutter - 设置秒表的毫秒数

标签 flutter dart

我目前正在开发一个 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/

相关文章:

dart - 单击 Iconbutton 后如何将其更改为不同的 Iconbutton

flutter - Flutter 和 Dart 中的测试描述约定是什么?

git - Flutter Pubspec.yaml 警告 : Publishable packages can't have git dependencies

flutter - 我的 Flutter 应用程序被 Apple Review 拒绝,指出这个 5.2 知识产权 (5.2.3)

dart - 有没有办法在 VS Code 中折叠 Dart 枚举代码块?

dart - 注意事项 : having main as a stateful widget

dart - C# Yield Return on Dart/Flutter Return List<String> 循环

android - 参数类型 'Stream<User?>' 不能分配给参数类型 'Stream<User>?'

flutter - 无法从文件中获取图像

dart - 如何用 Dart 观察 window.location 的变化?