我有点很困惑何时使用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(使用前将#替换为@)