每 5 秒更新一次文本小部件,而不在颤动中使用“setstate()”

Posted

技术标签:

【中文标题】每 5 秒更新一次文本小部件,而不在颤动中使用“setstate()”【英文标题】:update text widget every 5 sec without using 'setstate()' in flutter 【发布时间】:2021-09-29 10:42:02 【问题描述】:

this is image of my app

如果用户断开网络连接,我想将文本从“已连接”更新为“已断开”

我使用了它的包并且“我有所有的代码”所以我如何才能只更改一个使用 set state() 提交的文本 [旧代码我正在使用计时器、网络检查包和 状态小部件]

因为 set state() 每次都会构建整个三个页面,所以我可以使用 changenotifier 提供程序还是有什么可用的方法?

【问题讨论】:

给出一些带有变更通知的无状态代码示例 【参考方案1】:

是的,您可以使用 Provider 并仅将与显示(在线/离线)相关的部分包装在消费者小部件中。 或者将那个非常小的部分提取到一个单独的有状态小部件中,该小部件具有开/关显示,然后将其作为子小部件插入到您的无状态小部件中。

【讨论】:

现在我面临的问题是如何每次都调用提供程序功能? ------------------------------------------------------- 定时器 timer = Timer.periodic( Duration(seconds: 2), (Timer t) Provider.of(context, listen: false).update(); ); ---------------- 这段代码写在构建中,所以我发现了上下文错误(我使用计时器变量每 2 秒调用一次更新函数)

以上是关于每 5 秒更新一次文本小部件,而不在颤动中使用“setstate()”的主要内容,如果未能解决你的问题,请参考以下文章

如何在颤动中获取动态文本小部件的宽度?

如何遍历地图列表并在颤动列表视图中显示文本小部件?

在文本小部件中为不同的字母颤动不同的颜色

如何在颤动中使用流构建器刷新小部件

使用按钮单击生成文本字段小部件并保存文本输入颤动

动态更改小部件的文本颤动/飞镖