我很困惑什么时候dispose在颤振中使用。有没有关于这方面的好教程?
在食谱https://flutter.io/docs/cookbook/forms/focus 中:
void dispose() {
// Clean up the focus node when the Form is disposed
myFocusNode.dispose();
super.dispose();
}
Run Code Online (Sandbox Code Playgroud)
为什么我必须打电话myFocusNode.dispose();?如果我不打电话会怎样?
请解释清楚一点,或者给我一些明显的错误代码示例,当不为 FocusNode 调用 dispose 或其他情况而不是简单地告诉我这会导致内存泄漏时,会显示不良结果...
非常感谢。
Sna*_*ips 12
焦点节点是长期存在的对象。例如,如果一个有状态的widget 有一个可聚焦的子widget,它应该在State.initState 方法中创建一个FocusNode,并在State.dispose 方法中处置它,每次State.build 方法都向可聚焦的child 提供相同的FocusNode正在运行。特别是,每次调用 State.build 时创建一个 FocusNode 将导致每次构建小部件时失去焦点。
换句话说,处理它们可以确保节点在每次构建小部件时正确调用焦点,其他调用焦点的小部件没有问题,并且还保留了性能。
| 归档时间: |
|
| 查看次数: |
4263 次 |
| 最近记录: |