首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

setState()不能在我的小部件中工作,因为我的那个小部件构建在小部件树的底部,那么我如何重新构建那个小部件呢?

在这种情况下,您可以使用GlobalKey来重新构建小部件。GlobalKey是一个全局唯一的标识符,可以用于在小部件树中查找和操作特定的小部件。

以下是重新构建小部件的步骤:

  1. 首先,在您的小部件类之外创建一个GlobalKey对象,例如:GlobalKey<_YourWidgetState> yourWidgetKey = GlobalKey<_YourWidgetState>();
  2. 在您的小部件类中,将GlobalKey分配给您的小部件的key属性,例如:key: yourWidgetKey,
  3. 然后,在需要重新构建小部件的地方,使用GlobalKey来获取小部件的状态对象,并调用setState()方法来触发重建,例如:yourWidgetKey.currentState.setState(() {});

这样,您就可以在小部件树的底部重新构建您的小部件了。

请注意,GlobalKey的使用需要谨慎,因为它可以绕过小部件树的正常更新机制。确保在必要的情况下使用它,并避免滥用。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Flutter常见开发问题

如果你完全喜欢拖拽,那么 Flutter Studio 是推荐一个很棒资源,它可以帮助你通过拖放生成布局。这是一个让印象深刻工具,很想看看它是如何发展。...它是如何做到?在构建应用程序时,它不是只使用特定资源,而是实质上需要所有资源。为什么这有帮助?因为如果将一个图标从一个更改为另一个,则不必完全重建应用程序。...下次重新启动或热加载应用程序时,Flutter 基本上会在现有应用程序之上修补更改,从而提供极快刷新。 注意:通过热重载或重启所做更改不会保存在设备 APK 或 IPA 文件。...更详细地说,一个内容可以改变动态小部件应该是一个有状态部件。无状态小部件能在更改参数时更改内容,因此需要在小部件层次结构位置点上方完成。...包含静态内容屏幕或小部件应该是无状态小部件,但要更改内容,需要有状态。 你如何处理 Flutter 代码缩进和结构?

6.7K20

Flutter常见开发问题

但是 Flutter 社区很多人更喜欢代码方式,但这并不意味着无法实现拖拽。如果你完全喜欢拖拽,那么 Flutter Studio 是推荐一个很棒资源,它可以帮助你通过拖放生成布局。...这是一个让印象深刻工具,很想看看它是如何发展。 链接:https : //flutterstudio.app Flutter 是否像浏览器一样工作?...它是如何做到?在构建应用程序时,它不是只使用特定资源,而是实质上需要所有资源。为什么这有帮助?因为如果将一个图标从一个更改为另一个,则不必完全重建应用程序。...更详细地说,一个内容可以改变动态小部件应该是一个有状态部件。无状态小部件能在更改参数时更改内容,因此需要在小部件层次结构位置点上方完成。...包含静态内容屏幕或小部件应该是无状态小部件,但要更改内容,需要有状态。 你如何处理 Flutter 代码缩进和结构?

6.8K30
  • Flutter 自定义动画底部导航栏

    在这个博客,我们将探索Flutter自定义动画底部导航栏。我们将看到如何实现自定义动画底部导航栏演示程序以及如何在您 Flutter 应用程序中使用它。...它展示了自定义底部导航栏将如何在您 Flutter 应用程序工作。它显示当用户点击底部导航栏图标时,它们将被动画化并显示标签文本。当用户点击任何图标时,颜色也会发生变化和动画。...itemCornerRadius:该属性用于物品角半径,如果设置,默认为50。 如何在 dart 文件实现代码 创建一个新 dart 文件*my_home_page.dart*。...我们将添加四个具有不同文本容器并返回**IndexedStack()**小部件。在小部件内部,我们将添加索引是变量 _currentIndex 和 children 是列表小部件页面。...这是对用户交互自定义动画底部导航栏一个介绍。

    8.9K30

    为Flutter应用程序添加交互性 顶

    内容 有状态和无状态部件 创建一个有状态部件 第1步:决定哪个对象管理小部件状态 第2步:子类StatefulWidget 第3步:子类状态 第4步:将有状态小部件插入小部件 问题?...本节展示如何为Lakes应用程序构建一个名为Favorite Widget有状态小部件。 第一步是选择如何管理Favorite Widgets状态。..._toggleFavorite()方法在按下IconButton时调用,它调用setState()。 调用setState()是至关重要因为这会告诉框架小部件状态已经改变,并且小部件应该重绘。...第4步:将有状态小部件插入小部件 将您自定义状态小部件添加到应用构建方法部件。...这些例子都是类似的工作 - 每创建一个容器,当点击时,在绿色或灰色框之间切换。 _active布尔值确定颜色:绿色表示激活或者灰色表示激活。 ? ?

    4.2K20

    供应链状态更新与5G影响

    Martin: 希望我们能看到更多部件以更快速度结束其生命。我们正处在迈向推出更小尺寸规格产品初期,因此,看到用户遇到很多采购方面的问题,导致他们在是否要重新设计自己产品上犹豫决。...因为团队分布在世界各地,所以每次只要出现问题,当来自各个站点问题逐层升级,我们就要参与其中。每天都会出现新短缺,每个短缺都会带来挑战,影响收益和出货量。那么,你能做什么,要怎么做?...想说是,每天都会出现不同问题,但这些问题归根结底都是如何努力满足用户诉求与要求,以及在市场寻找零部件事情。在这一点上,大部分部件与交货时间长没有关系,而是零部件生命终结问题。...与此同时,我们与客户合作,获得他们授权或重新设计新部件,然后我们在世界各地灰色市场上寻找任何我们能找到部件并进行测试。这就是做这个工作方法。...这会影响他们收入来源,因为他们选择制造商无法生产他们需要零部件,或者会延期收到零部件,这样他们单位成本就会上升,因为市场越紧俏,价格就越高。客户最注重是检查设计周期,并使用尽可能元件。

    51330

    Flutter Widget框架之旅 顶

    当小部件状态发生变化时,小部件重新构建描述,该描述与前面的描述不同,以确定底层渲染从一个状态转换到下一个状态所需最小更改。...部件主要工作是实现一个build函数,它根据其他较低级别的部件描述部件。该框架将依次构建这些部件,直到该过程落在代表底层RenderObject部件,该部件计算并描述部件几何形状。...让我们看看这个稍微复杂例子在实践如何工作: class CounterDisplay extends StatelessWidget { CounterDisplay({this.count...尽管父级在重建时创建了ShoppingListItem新实例,但该操作很便宜,因为该框架将新构建部件与先前构建部件进行比较,并仅将差异应用于基础RenderObject。...为了通知框架它改变了它内部状态,它将这些调用包装在setState调用。调用setState会将这个小部件标记为肮脏,并计划在下一次您应用程序需要更新屏幕时重新构建它。

    6.7K20

    什么才算是真正编程能力?

    在周围人看来似乎好像我很厉害,做了那么多东西,但是发现这些东西虽然是,但是实际上手把手自己写代码却并没有多少,很多都是用开源东西,代码无非是把别人东西整合下,类似于胶水一样工作。...那”胶水”能力和整合轮子能力算不算编程能力? 所以我现在就很困惑,所谓编程能力到底是什么,如何提升自己编程能力? ? 下面是 刘贺 回复:(伯乐在线已征得同意) 非常好一个问题。...理论走是深度,是在追问在给定计算能力约束下如何把一个问题解决得更快更好。而系统走是广度,是在追问对于一个现实需求如何在众多技术设计出最多快好省技术组合。 搞ACM的人,只练第一类。...恰恰相反以为,系统编程能力正体现在“重新制造”能力。 能把已有的部件接起来,这很好。但当你恰好缺一种关键胶水时候,你能写出来吗?当一个已有的部件不完全符合你需求时候,你能改进它吗?...在那之前,多造轮子,多拆好拆轮子,应该是提高编程能力最好办法了。 以上。嗯。 (文章属个人观点,与本人工作雇主无关。)

    1.1K60

    电脑知识系列之(一)-------认识电脑

    对于显示器、鼠标、键盘、音箱、摄像头这些部件可能大家都熟悉不能再熟悉了,也不在这里多说,不过,一点建议还是有的,比如说我们在买一台台式机时候,这些东西没必要选择太贵,先淘宝看看销量一般就可以了...太大了伤眼睛不说,关键是你眼睛也没有那么大,你说对不对,笔记本的话14寸是最好,台式机的话比这个大两个尺寸就好了,键盘鼠标啥一般绝对没问题,如果去店里面买的话,千万别听店家瞎忽悠你,直接私聊编...,主机就是电脑桌下那个机箱里面的东西,平时我们开机都会去按箱子上按钮,然而笔记本,你就看不到主机了,因为都被集成到了笔记本内部了,想看也可以,拆下来就好,不过,拆坏了,编可不管哈。...1.买台式机的话,如果方便最好去大一点电脑城买,尽量找熟人,如果不方便在电商平台购买一定要擦亮眼睛,买销量稍微好一点,不然买到翻新机哭都哭赢,对于买整机还是组装机,建议是,如果时间还充足建议买组装机...3.对于不经常移动办公最好选择台式机,价格低廉,体验感也很好,经常移动办公买笔记本最好选择牌子货,华硕,联想都可以,有些伙伴说神州电脑还是不错,但编经过调查发现神州电脑在所在市区似乎出货量不大

    1.4K30

    Flutter 状态管理方案:setState、BLoC、ValueNotifier、Provider

    此示例 app 展示了如何使用各种状态管理方案处理加载状态。 主要导航 登录页面的主要导航是通过一个小部件实现,该小部件使用 Drawer 菜单在不同选项中进行选择。...如下是他们比较方式: setState ↔︎ 最精简代码 BLoC ↔︎ 最多代码 ValueNotifier ↔︎ 中等水平 所以 setState 方案最适合这个例子,因为我们需要处理单个小部件各自状态...在构建自己应用程序时,你可以根据具体情况来评估哪个方案更合适 彩蛋:实现 Drawer 菜单 跟踪当前选择选项也是一个状态管理问题: 首先在自定义 Drawer 菜单中使用本地状态变量和 setState...但是登录后状态丢失了,因为 Drawer 已经从 widget 删除。...这样,即使删除使用它部件,状态也会被保留。 ValueNotifier 比 setState 需要更多代码。但它可以用来记住状态,通过在 widget 中放置适当 Provider。

    4.6K00

    Hinton AAAI2020 演讲:这次终于把胶囊网络做对了

    那么下一个问题就是,我们能不能沿着这个方向继续往前走,能不能设计一些更加模块化结构,这样就可以做解析之类。...视觉里非常重要两件事,处理视角变化,以及建立解析,就这样设计到了模型里面。 现在还没展示如何做编码器,也就是感知部分。...每个部件是学习得到 11x11 大小模版,这里不会详细解释部件是怎么学习到因为和整个数字学习方式基本一样,所以我主要讲讲整个数字是怎么学。...其中红色部分是从图像中提取部件,然后重新构建出像素得到;绿色部分是从图像中提取部件、激活更高级别的胶囊,然后再重构低级别的胶囊、重构像素得到,也就是从高级别一步步生成。...接下来要展示是,在学会了如何提取部件之后,要学习整体,来解释这些部件组合。

    1.1K30

    Flutter —布局系统概述

    这次,试图更好地理解“布局系统工作原理”,并回答以下问题: 部件尺寸看起来不合适,怎么回事? 只想将Widget放置在特定位置,但是没有任何属性可以控制它,为什么?...一直看到诸如BoxConstraints,RenderBox和Size之类术语。它们之间有什么关系? 对布局系统如何工作有一个大概了解? 本文并不意味着对以上所有内容进行深入而详细描述。...但是,我们将对最重要内容进行很好概述,力图将一切可视化。 “两个阶段” 布局系统和约束 首先,小部件是Flutter SDK构建块,但它们不负责将其自身绘制到屏幕。...觉得three可能写错了,应该是tree,译文:以同样方式小部件生成 组件,RenderBoxes生成渲染。 我们可以将Flutter布局系统视为两阶段系统。...小部件可以选择想要大小,但必须根据其父级限制。 约束向下传播,而大小向上传播。 尝试了解约束条件,它们可能在以后有用。 希望所有这些都可以帮助您更好地了解Flutter布局系统工作方式。

    1.7K20

    用过设计模式(1)-- 本门心法

    我们对外公布是接口,又不是实现类。 如果你非要对这个栗子实现单一原则,也可以,你要有那个权力或精力(因为估计没人愿意陪你这样玩)。...那么,就要切入到我们正题了,松耦合、强内聚电脑,是怎么组装? 像内存条这种东西啊,管你是哪家生产,只要符合规格,再比如鼠标、键盘、电池(电池得配套),反正哪个部件坏了就换哪个部件。...为什么这些部件不论插在哪一台电脑上都能使用?是这些部件配合电脑主板设计,还是电脑主板配合这些零部件设计? 想来答案已经很明确了。...最佳实践 依赖倒置原则本质就是通过抽象使得各个类或模块实现彼此独立,互相影响,实现模块之间松耦合,我们怎么在项目中使用这个规则?...抽象实体: 项目或软件产品按照一定逻辑规则划分模块。 抽象类 方法 这个原则很重要,后面会很经常见。 多说无益,就稍微说两句,后面慢慢看它真面目。 如何应对需求变化?

    30840

    Flutter一切皆widget但是不要将所有东西放入一个widget

    “小部件一切”示例可以在Flutter 文档本身中找到。本教程目标是展示如何构建此布局: image-20210822082626144 最终代码达到了它目的:展示如何简单地创建上述布局。...在第一个版本,MyApp如果我们将其设为StatefulWidget. Flutter 文档也解释了这种最佳实践: “当setState()在状态上调用时,所有后代小部件都将重建。...因此,将setState()调用本地化到 UI 实际需要更改子树部分。如果更改包含在一小部分,请避免在高处调用 setState()。 ” 另一个优点是能够const更频繁地使用关键字。...然后可以缓存和重新使用小部件。正如Flutter 文档所述: “重用小部件比创建新(但配置相同)小部件要高效得多。 ” 如何提高工作效率?...我们可以在 Visual Studio Code 中使用Dart扩展提供stless和stful片段, 为了自己需要,创建了新片段,称为sless和sful,这样工作效率比以往任何时候都高

    1.2K10

    Eplan 3D 布局步骤

    Eplan 3D布局核心是什么? 答案:部件3D宏 3D 宏主要用来做电气 3D 布局和布线使用。...(文件格式AP203,AP214 是 STEP 不同版本,AP214 包含颜色信息。) 如何获得 3D 宏,可以有以下方法: 1. 从 EPLAN Data Portal 下载 3D 宏。...那么有了 STEP 文件后,如何制作 3D 宏? 现在我们以欧姆龙 MY2N 继电器为例制作 3D 宏。...选择你要转换 STEP 文件,导入 导入完成后显示 3D 模型 将布局空间属性宏名称进行更改,因为在后续自动生成3D宏时,这个名称将显示为文件名.ema。...如果部件是直接安装在安装板或目标上那么放置区域在最底部。 2. 如果部件是安装在 DIN 导轨上那么放置区域应该在切口上部。 3.

    12.8K30

    记住,永远都不要在 Flutter 中使用全局变量

    复杂代码维护过程 更改或删除一个全局变量会触发一系列事件,因为使用全局变量部件和方法将受到影响。 如果要更改全局变量,则必须分析访问全局变量每个小部件如何受到影响并进行特定且必要更改。...很难理解使用全局变量遗留代码,而理解程序流程是如何工作更是难上加难。很难有效地测试你不理解代码,调试也很困难,因为你不知道是谁改变了全局变量。 3....全局变量导致“面条”代码 由于程序每个函数都可以修改全局变量,因此很难跟踪更改。如果你正在构建一个大型应用程序,在 Flutter 中使用全局变量情况会升级。...但是,有些开发人员会使用全局变量,因为他们在一个团队,并且在某些情况下不利于更改。 但是,无论应用程序大小如何,当需要维护代码时,全局变量都会带来挑战。...SetState 方法 之前,我们只介绍了管理状态 Flutter 包和库。 当你部件更改数据值时,可以调用一个名为 setState 方法。它将导致 UI 根据新状态发生变化。

    3.5K30

    设计一个界面,很简单!

    本周,编给大家分享在Python如何制作一个简单图形界面吧,Python里有很多图形用户界面库,如Tkinter, Pmw, wxPython, PySide, PyQt, PyGTk, win32ui..., Glade等,在这些库编只会Tkinter、wxPython和PyQt三种库,由于内置库Tkinter最为简单实用,所以就先从它开始吧,其他库以后慢慢介绍吧!...接下来,将给大家简单地介绍一下Tkinter使用方法。 一、简单说明 首先,对Tkinter这一模块做一个简要地说明。...它是一个开源,多平台部件工具包,被许多不同语言用来构建GUI程序。...Tkinter适用于各种领域,从小型桌面应用程序到科学建模和各个学科研究工作。 学习Python的人需要从事GUI编程时,Tkinter似乎是完成工作最简单,最快捷方式。

    2.6K100

    如何在flutter构建响应式布局(第五节)

    在继续在 Flutter 构建响应式布局之前,想说明一下 Android和iOS如何处理不同屏幕尺寸原生布局。...小部件本质上是可重用,因此您在 Flutter 构建响应式布局时无需学习任何其他概念。...Flutter 响应能力 正如我之前所说,将介绍开发响应式布局所需重要概念,然后,您可以选择如何在应用程序实现它们。 1. 媒体查询 您可以使用?MediaQuery来检索?...让我们在构建示例响应式应用程序时学习最后一个概念。 构建响应式应用程序 现在,我们将应用在上一节描述一些概念。除此之外,您还将学习构建大屏幕布局另一个重要概念:拆分视图。...OrientationBuilder了LayoutBuilder来breakpointWidth根据方向改变 ,因为不想PeopleView在处于横向模式时在屏幕手机上显示。

    2.8K10

    必读~苹果iOS小组件Widget设计终极完全指南

    重新定义了您应用如何向用户显示新信息。小部件是应用程序扩展,您可以显示重要信息,而无需用户打开您应用程序。...小组件尺寸 可用窗口小部件尺寸(称为,大) 无论小部件大小如何,它都应始终专注于一件事。在大多数情况下,小部件会根据您应用主要功能提供信息。...建议在较大尺寸中使用“填充”样式。 间距 与往常一样,元素之间间距是设计关键。Apple建议在小部件边缘留出16pt边距。在带有图形布局,使用更窄11pt边距。...接下来我们来设计其它尺寸小组件。 如果你单纯把小组件拉大,而增加其它内容,那么这个小组件没有任何价值。更大尺寸应该显示更多内容,这才是有用小组件。 让我们从中型小部件开始。...不允许在小部件上使用您应用名称,因为它是多余

    7.3K30

    从小玩到大超级玛丽,计算复杂性是怎样

    在第一条路径,大玛丽进入后需要碰一下怪物变成玛丽后才能通过狭小通道,注意右上方问号方块中有一个蘑菇,玛丽吃了后可以变回大玛丽状态。...在第二条路径,玛丽达到底部后一路向上,注意由于处于大玛丽状态,他可以撞开砖块后继续向上移动,但却不能进入第一条路径。...因此,只有当这三个问号方块至少有一个方块被撞开过,玛丽才能在验证时中通过 clause 部件。...注意,这里与 NP-hard 证明不同是,玛丽总是处于玛丽状态。 上图就是 crossover 部件,玛丽需要以最快速度移动才能从左上到达右下(或从右上到达左下)。...完善归约 在给出最后定理前,归约两个 bug 可能需要再讨论一下。 一个 bug 是 open-close door 部件中央火球。

    62010

    Flutter 入门指北之手势处理和动画

    在 Flutter ,自带手势监听目前为止好像只有按钮部件和一些 chip 部件,例如 Text 等部件需要实现手势监听,就需要借助带有监听事件部件来实现了,这节我们会讲下 InkWell 和 GestureDetector...InkWell 在前面的一些例子,小伙伴应该看到了好几次 InkWell 这个部件,通过它我们可以实现对一些手势监听,并实现 MD 水波纹效果,举个简单一个例子 InkWell( child...: Text('点我...点我...能响应点击手势'), onTap: () => print('啊...被点击了...') ), 那么当点击 Text 时候就会响应点击事件,控制台输出日志...,那么很多小伙伴肯定会问了,「**,加了那么多代码,效果还是和以前一样,还不如不加...」好吧,无法反驳,但是如果要实现多个动画那么使用 Tween 就有优势了,比如我们让图标大小变化同时,颜色和位置也发生变化...因为没有找到好例子,原谅直接搬官方例子来讲,官方交错动画 demo 在继续看之前,先了解下 Interval /// An [Interval] can be used to delay an animation

    1.8K30
    领券