flutter - 如何在不重新创建小部件的情况下重新渲染小部件-Flutter/Dart

标签 flutter dart

在下面的代码中。有两个CountdownTimer(黄色和红色),并且当条件发生变化时,显示屏上显示的CountdownTimer小部件将发生变化,即从黄色切换为红色,反之亦然。
但是,切换时,CountdownTimer会“重新初始化”。
例如,假设黄色的初始计时器为60秒,勾选40秒后,还剩下20秒。此时,条件发生了两次更改,例如5秒钟,因此CountdownTimer切换为红色,然后又变为黄色。而不是从15秒开始运行计时器,而是从60秒重新开始。如何防止小部件的这种“重新初始化”,并且不管条件如何,允许计时器在后台独立进行?
另外,为了使这个问题更容易理解,我使用了经过修改的代码。因此,在实际代码中,我不能使用变量来存储endTime的值。因此,将需要另一个版本的答案。
从本质上讲,我需要一种方法来使CountdownTimer在后台保持 Activity 状态,而不会因删除该计数而造成困惑的垃圾收集。

condition ? CountdownTimer( // yellow
                    endTime: DateTime.now().millisecondsSinceEpoch + 200000,
                    textStyle: TextStyle(fontSize: 50, color: Colors.yellow),
                  )
: CountdownTimer( // red
                    endTime: DateTime.now().millisecondsSinceEpoch + 1000,
                    textStyle: TextStyle(fontSize: 50, color: Colors.red),
                  ),

感谢您抽出时间来阅读。

最佳答案

关于flutter - 如何在不重新创建小部件的情况下重新渲染小部件-Flutter/Dart,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62968668/

相关文章:

flutter - 是否可以在小部件中使用上下文?

flutter - 在 flutter web 中添加依赖

android - 在 Flutter add2app 场景中,如何让应用返回按钮返回到宿主应用?

android - Flutter 无法从 Assets 中加载文本

dart - 在 Dart 中返回 Future 时为空

flutter - 如何使用 header 键进行 API 调用?

flutter - 如何在 flutter 中添加圆形评级图表?

android - 分辨率感知图像不起作用 - Flutter

dart - js-interop:如何在回调函数中访问输入数据?

angular - 如何使Angular2 Dart 在IE11中工作