Flutter开发实战-获取Widget的大小及位置 最近开发过程中需要获取Widget的大小及位置,这时候就需要使用到了GlobalKey了和WidgetsBinding.instance.addP
最近开发过程中需要获取Widget的大小及位置,这时候就需要使用到了GlobalKey了和WidgetsBinding.instance.addPostFrameCallback了
该函数的作用:
flutter中的界面组件Widget每一帧渲染在界面上,addPostFrameCallback功能是在每一帧绘制完成后再回调执行自定义的方法
例如在绘制完成后,根据获取Widget的大小及位置
void initState() { // TODO: implement initState super.initState(); WidgetsBinding.instance?.addPostFrameCallback((timeStamp) { if (mounted) { updateElementFrame(); } }); }
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); //获取size Size size = renderBox.size; } } }
flutter开发实战-获取Widget的大小及位置。需要使用到了GlobalKey了和WidgetsBinding.instance.addPostFrameCallback.
学习记录,每天不停进步。
来源地址:https://blog.csdn.net/gloryFlow/article/details/132197786
--结束END--
本文标题: flutter开发实战-获取Widget的大小及位置
本文链接: https://www.lsjlt.com/news/412908.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-01-21
2023-10-28
2023-10-28
2023-10-27
2023-10-27
2023-10-27
2023-10-27
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0