Inter Widget通讯

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Inter Widget通讯相关的知识,希望对你有一定的参考价值。

是否可以通过通知/事件总线等方式进行小部件间通信?

我需要能够告诉一个小部件对另一个小部件发生的事情作出反应并且不想创建硬链接。

只有在窗口小部件树中它比两个窗口小部件更高时,通知监听器才会触发,因此这可能不是一个可行的解决方案。

答案

根据您的使用情况,有很多方法可以做到这一点。

你可以让它们是AnimatedWidgets,通过ValueNotifierChangeNotifier作为listenable。你可以在Gallery的animation example中看到这种模式。

StreamBuilder上有新事件发生时,您可以使用Stream让您的小部件自动重建。在主要的Flutter仓库中没有很多这样的例子,但是一旦你开始使用插件或进行网络I / O,你就可能需要它。

您可以使用GlobalKey来获取currentState并在另一方面使用一个State调用方法。这就是小吃店的工作方式(example)。

您还可以扩展InheritedWidget以提供未作为构造函数参数传递的信息的小部件,并且当信息更改时,它们将自动标记为重建。例如,这就是Themes的工作方式。

如果您可以提供有关您的小部件的功能/他们的关系的更多详细信息,或者理想情况下是一个代码段,我可以帮助您确定哪种方法最适合您的情况。

以上是关于Inter Widget通讯的主要内容,如果未能解决你的问题,请参考以下文章

golang代码片段(摘抄)

无法将整数强制转换为android.support.design.widget.FloatingActionButton

thinter笔记

如何在 ViewBinding 中使用片段?

html 优雅的博客时事通讯片段

论如何设计一款端对端加密通讯软件