计时器上的嵌入式小部件

时间:2019-08-14 12:44:14

标签: flutter

我有一个页面,该页面是一个StatelessWidget,并且包括一个在页面上显示时间的窗口小部件。该小部件使用以下计时器以定期速率进行更新。

timer = Timer.periodic( Duration(milliseconds: 541), (Timer t) => handleTimer());

当计时器弹出时,handleTimer更新小部件以显示新时间。

我看到对于每个计时器的滴答声,整个页面都会重建。我期望只有时间显示小部件会更新。

有什么办法可以只构建时间显示小部件而不是整个页面?

谢谢

1 个答案:

答案 0 :(得分:0)

解决此问题的方法很多,有两种:

  1. 最简单的方法是创建一个仅包含您要更新的部分(时钟)并在handleTimer中运行setState的有状态小部件。 map 只有有状态的小部件将被更新。

  2. 使用RxDart流。创建一个Behaviorsubject,并在handletimer方法中添加更新。使用Streambuilder小部件绘制计时器。