邹城建设银行网站,建设银行甘肃兰州分行网站,网站编程零基础入门,专升本报名入口官网2023报名时间flutter开发实战-获取Widget的大小及位置
最近开发过程中需要获取Widget的大小及位置#xff0c;这时候就需要使用到了GlobalKey了和WidgetsBinding.instance.addPostFrameCallback了
一、addPostFrameCallback
该函数的作用#xff1a;
flutter中的界面组件Widget每一帧…flutter开发实战-获取Widget的大小及位置
最近开发过程中需要获取Widget的大小及位置这时候就需要使用到了GlobalKey了和WidgetsBinding.instance.addPostFrameCallback了
一、addPostFrameCallback
该函数的作用
flutter中的界面组件Widget每一帧渲染在界面上addPostFrameCallback功能是在每一帧绘制完成后再回调执行自定义的方法
例如在绘制完成后根据获取Widget的大小及位置
overridevoid initState() {// TODO: implement initStatesuper.initState();WidgetsBinding.instance?.addPostFrameCallback((timeStamp) {if (mounted) {updateElementFrame();}});}二、GlobalKey
GlobalKey可以方便地帮助我们获取指定Widget的状态、大小、位置还可以很方便用来调用指定Widget的方法。 经常用在父子组建Widget调用https://blog.csdn.net/gloryFlow/article/details/131960753
这里使用GlobalKey来获取大小、位置。
代码如下
void updateElementFrame() {if (mounted) {GlobalKey globalKey widget.key as GlobalKey;if (globalKey.currentContext ! null) {RenderBox renderBox globalKey.currentContext!.findRenderObject() as RenderBox;// offset.dx , offset.dy 就是控件的左上角坐标Offset offset renderBox.localToGlobal(Offset.zero);//获取sizeSize size renderBox.size;}}}三、小结
flutter开发实战-获取Widget的大小及位置。需要使用到了GlobalKey了和WidgetsBinding.instance.addPostFrameCallback. 学习记录每天不停进步。