1 WidgetsBinding.drawFrame 执行的时候 会 回调 BuildOwner.finalizeTree。
1.1 执行_inactiveElements._unmountAll()
1.1.1 设置_locked 为true。
1.1.2 _elements 排序放到 elements,_elements 清空。
1.1.3 遍历每一个elements 执行_unmount
1.2 执行_unmount,遍历执行每一个element的unmount
1.2.1 Element.unmount()
如果key是GlobalKey ,移出owner中的注册。
设置_dependencies =null ,_widget = null
设置_lifecycleState = _ElementLifecycle.defunct;
1.2.2 RenderObjectElement.unmount()
执行widget.didUnmountRenderObject()
执行_renderObject!.dispose();
设置_renderObject = null;
1.2.3 StatefulElement.unmount()
执行state.dispose();
执行 state._element = null;
执行_state = null;
flutter 声明周期相关 BuildOwner.finalizeTree
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 参考:大灰狼的小绵羊哥哥[https://blog.csdn.net/sinat_17775997]Flutter...
- 老孟导读:关于生命周期的文章共有2篇,一篇(此篇)是介绍 Flutter 中Stateful 组件的生命周期。第二...