使用场景
Flutter 中的界面组件(控件)只要一帧就能绘制渲染在屏幕上,当然,这一帧 Flutter 做了很多事,包括 Build、Layout 和 Painting 阶段。而 addPostFrameCallback
就是在每一帧绘制完成后再回调执行一些自己的方法。这个机制的使用场景非常多。
比如组件渲染完后做一些操作,像开启动画、弹出对话框 Dialog、获取组件 Widget 的大小和位置。或者使用 addPostFrameCallback
延迟加载数据,确保界面渲染完才加载数据,避免出现 UI 阻塞。还有,在界面组件渲染完成后,请求接口获取数据,动态添加组件等等。总之,当你需要在组件首次渲染完成后执行某些操作时,都可以使用它。
如何使用
最常见就是在生命周期 init()
初始化中使用,因为 init()
只会在组件首次渲染执行,是很特殊的函数,而在 initState
中使用 WidgetsBinding.instance.addPostFrameCallback
,也就说明我们在组件首次渲染完成后执行回调函数。
@override void initState() { super.initState(); WidgetsBinding.instance.addPostFrameCallback((_) { print("initState: Frame has been rendered"); }); }
https://guozh.net/add-post-frame-callback/
标签:widget,渲染,addPostFrameCallback,WidgetsBinding,instance,initState,组件 From: https://www.cnblogs.com/huangzs/p/17972179