为什么FocusNode需要在flutter中进行处置?

2023-12-19

我有点很困惑何时使用dispose扑腾中。有关于这方面的好的教程吗?

在食谱中https://flutter.io/docs/cookbook/forms/focus https://flutter.io/docs/cookbook/forms/focus:

void dispose() {
  // Clean up the focus node when the Form is disposed
  myFocusNode.dispose();

  super.dispose();
}

为什么我必须打电话myFocusNode.dispose();?如果我不打电话会发生什么?

请解释清楚一点,或者给我一些明显的错误代码示例,显示当不调用 FocusNode 或其他情况的 dispose 时会出现不良结果,而不是简单地告诉我这会导致内存泄漏...

多谢。


从文档来看: https://docs.flutter.io/flutter/widgets/FocusNode-class.html

焦点节点是长期存在的对象。例如,如果一个有状态窗口小部件有一个可聚焦的子窗口小部件,则它应该在 State.initState 方法中创建一个 FocusNode,并在 State.dispose 方法中对其进行处置,每次 State.build 方法时都为可聚焦的子窗口提供相同的 FocusNode正在运行。特别是,每次调用 State.build 时创建 FocusNode 将导致每次构建小部件时焦点丢失。

换句话说,处理它们可以确保每次构建小部件时节点都能正确调用焦点,调用焦点的其他小部件不会出现问题,并且还可以保留性能。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么FocusNode需要在flutter中进行处置? 的相关文章

随机推荐

  • panda dataframe 评估中的动态列名称

    我引用一个数据框如下 Sales是列名 total pd to numeric sales df Sales str replace sum 但我不想Sales为了进行硬编码 我想要一个变量来使其动态 这是怎么做到的 TIA 您可以使用方括
  • 仅允许在一个视图控制器上自动旋转

    在我的项目中 我只允许纵向旋转 但对于一个ViewController我想也启用景观 我正在介绍这个ViewController as ModalViewController 我尝试过使用方法 BOOL shouldAutorotateTo
  • 如何将网络摄像头视频发送到 Amazon AWS EC2 实例

    假设我要将网络摄像头捕获的视频流式传输到 Amazon AWS EC2 实例 以便在云中进行图像处理 一个人会怎样做呢 据我所知 文件传输的唯一方法是将文件复制到远程主机 我不知道从哪里开始将视频流传输到 AWS EC2 谷歌没有为我找到任
  • 测量 Java 应用程序中的 sql 执行时间

    有没有一种简单的方法来测量 JDBC 执行的所有 sql 语句的执行时间并将结果打印到输出 有些人可能建议我使用 AOP 来做到这一点 但我会尽可能避免这种情况 还有别的办法吗 如果您没有在为您提供数据源的应用程序服务器中运行该应用程序 您
  • 为什么postgres用户的目录没有出现在Linux中与其他用户的HOME目录中? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我对 postgreSQL 和 Linux 都是新手 我刚刚安装了它 发现它创建了自己的用户 postgres 我对此非常确定 因为您甚至可以在几乎所
  • PySpark:saveAsNewAPIHadoopDataset() 可以用作批量加载到 HBase 吗?

    目前 我们使用 saveAsNewAPIHadoopDataset 通过 Spark RDD pyspark 将数据导入到 HBase 表中 该函数是否通过mapreduce使用HBase批量加载功能 换句话说 直接导入HBase的save
  • C# 文本框中的链接

    我有一个自定义 Jabber IM 客户端 但我遇到链接问题 当类似的事情http something com http something com输入后我希望它在消息窗口中显示为链接 消息窗口是一个标准的 C 文本框 有没有办法将其标记为
  • R:从开头开始找到最大公共子串

    我有 2 个向量 word1 lt bestelling word2 lt bestelbon 现在我想找到从头开始的最大公共子串 所以这里是 bestel 但以另外两个词为例 bestelling 和 stel 那么我想返回 Matthe
  • Egit 克隆不起作用

    我可以从命令行克隆 但不能通过 Egit Eclipse 克隆 广泛的谷歌搜索没有给出答案 这个问题之前已经被问过很多次了 我几乎尝试了所有建议的东西 我不断收到 无法打开 git upload pack 的消息 是的 我可以从命令行克隆然
  • 无法使用 SQL Server Management Studio 连接到 SQL Azure

    我已在 Azure 门户上创建了一个 SQL Azure 数据库 现在我想使用 SQL Server Management Studio 连接到它 我已经这样设置我的属性 Server Type Database Engine Server
  • 弹出窗口的箭头用于跟踪滚动视图中的对象

    每当触摸表格视图中的单元格时 我都会显示一个弹出窗口 箭头指向该单元格 并且始终指向左侧或右侧 而不是向上或向下 表视图设置为弹出窗口的passthroughView 以便用户可以在弹出窗口仍然打开时选择不同的单元格 从而为所选单元格生成一
  • 从 igraph 到 ggplot 对象

    我使用 ggraph 和 igraph 构建了树状图 library ggraph library igraph EL lt read csv EL2 csv sep header TRUE stringsAsFactors FALSE E
  • 从动态 json 数据更新力导向图上的链接

    我是 D3 的新手 正在研究力定向图 其中 json 数据是动态的 我能够在收到新数据后更改力图 但这会产生弹跳效应 创建我的力图的代码是 div class graph div
  • MySQL 与 InnoDB 的死锁问题

    我有一个中央数据库服务器和几个 工作 服务器 它们同时执行这样的查询 UPDATE job queue SET worker 108 166 81 112 attempts attempts 1 started 2014 01 14 10
  • PySimpleGui 右对齐框架中的按钮

    我正在构建一个简单的 GUIpysimplegui并想要右对齐框架内的按钮 我找到了有关如何使用文本而不是按钮执行此操作的详细信息 例如 我希望下面的按钮能够卡入框架的右侧 周围有凹槽 我要这个 看起来更像这样 但无需添加手动调整的空白文本
  • 如何检查鼠标是否位于控件上

    如何检查鼠标是否位于某一 HWND 上方 我尝试过使用 WM MOUSELEAVE 和 WM MOUSEMOVE 消息来跟踪 但是如果您单击按钮并将鼠标拖出按钮 则在释放鼠标之前它不会收到 WM MOUSELEAVE 这为时已晚 因为 当您
  • 如何通过 log4net 记录机器名称?

    我使用 Log4Net 和 AdoNetAppender 将消息从简单的系统托盘应用程序记录到 SQL Server 2005 数据库中 我想将计算机名称与日志消息一起记录 因为该应用程序将在多台计算机上运行 并且我需要知道消息源自哪一台计
  • asp.net MVC3 部分视图结果不更新 EditorFor 值

    我有一个简单的电子邮件捕获表单作为我的主页的一部分 但是当我返回部分视图时 表单编辑器的模型值没有更新 该模型 public class Contact Key public int Id get set Required public s
  • 在每个 PHP 回溯级别获取范围内的变量?

    有没有办法在回溯中查看每个堆栈帧中设置的变量 我可以通过组合来非常接近debug backtrace true 来获取对象 get object vars在每个对象上获取 this vars args每个回溯帧中的键 以及get defin
  • 为什么FocusNode需要在flutter中进行处置?

    我有点很困惑何时使用dispose扑腾中 有关于这方面的好的教程吗 在食谱中https flutter io docs cookbook forms focus https flutter io docs cookbook forms fo