Flutter   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了dart – Force Flutter重绘所有小部件大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有办法强制Flutter重绘所有小部件(例如在区域设置更改后)?

(Stackoverflow不允许我提交,除非问题中有足够的文字).

解决方法

这种类型的用例,你有孩子可以读取的数据,但你不想显式地将数据传递给你所有孩子的构造函数参数,通常会调用一个InheritedWidget. Flutter将自动跟踪哪些小部件依赖于数据并重建已更改的树的部分.有一个 LocaleQuery小部件,旨在处理区域设置更改,您可以看到它在 Stocks example app中的使用方式.

简而言之,这就是Stocks正在做的事情:

>在根小部件(在本例中为StocksApp)上进行回调以处理区域设置更改.此回调执行一些操作,然后返回LocaleQueryData的自定义实例
>将此回调注册为MaterialApp构造函数的onLocaleChanged参数
>需要区域设置信息的子窗口小部件使用LocaleQuery.of(context).
>当语言环境发生更改时,Flutter仅重绘具有依赖于语言环境数据的小部件.

如果要跟踪区域设置更改以外的其他内容,可以创建自己的扩展InheritedWidget的类,并将其包含在应用程序根目录附近的层次结构中.它的父级应该是StatefulWidget,其键设置为子级可访问的GlobalKey. StatefulWidget的状态应该拥有您要分发的数据,并公开用于更改调用setState的方法.如果子窗口小部件想要更改状态数据,则可以使用全局键获取指向State(key.currentStatE)的指针并在其上调用方法.如果他们想要读取数据,他们可以调用InheritedWidget子类的静态(context)方法,这将告诉Flutter这些小部件需要在State调用setState时重建.

大佬总结

以上是大佬教程为你收集整理的dart – Force Flutter重绘所有小部件全部内容,希望文章能够帮你解决dart – Force Flutter重绘所有小部件所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。