(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重绘所有小部件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)