Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 如何在不重新创建小部件的情况下重新加载小部件-颤振/飞镖_Flutter_Dart - Fatal编程技术网

Flutter 如何在不重新创建小部件的情况下重新加载小部件-颤振/飞镖

Flutter 如何在不重新创建小部件的情况下重新加载小部件-颤振/飞镖,flutter,dart,Flutter,Dart,在下面的代码中。有两个倒计时装置(黄色和红色),当条件改变时,显示屏上显示的倒计时装置小部件将改变,即从黄色切换到红色,反之亦然 但是,当它切换时,倒计时变为“重新初始化”。 例如,假设黄色的初始计时器为60秒,滴答声持续40秒后,它将下降到剩下的20秒。此时,条件改变两次,例如5秒,因此倒计时开关切换为红色,然后返回黄色。它不是从15秒开始计时,而是从60秒开始重新启动。我如何防止小部件的这种“重新初始化”,并允许计时器在后台独立运行,而不管条件如何 另外,为了使这个问题更容易理解,我使用了一

在下面的代码中。有两个倒计时装置(黄色和红色),当条件改变时,显示屏上显示的倒计时装置小部件将改变,即从黄色切换到红色,反之亦然

但是,当它切换时,倒计时变为“重新初始化”。 例如,假设黄色的初始计时器为60秒,滴答声持续40秒后,它将下降到剩下的20秒。此时,条件改变两次,例如5秒,因此倒计时开关切换为红色,然后返回黄色。它不是从15秒开始计时,而是从60秒开始重新启动。我如何防止小部件的这种“重新初始化”,并允许计时器在后台独立运行,而不管条件如何

另外,为了使这个问题更容易理解,我使用了一个经过修改的代码版本。因此,在实际代码中,我不能使用变量来存储endTime的值。因此,需要另一个版本的答案

本质上,我需要一种方法,使两个倒计时器在后台保持活动状态,而不让flatter垃圾收集将其删除

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),
                  ),


感谢您抽出时间阅读此文章。

您不能始终同时拥有两个计时器,而只是根据情况更改可见性吗

另请参见:
.

你能发布倒计时的代码吗?@ShubhamGupta是的,倒计时是我从哦,不,先生,你是对的。使用您提供的链接中的“Gone示例”更改可见性无效。但通过在“Gone示例”中添加“maintaintState:true”,它确实可以防止倒计时计时器被删除。谢谢你的回答。