首页 > 解决方案 > 在 Flutter 中查询小部件大小时大小不一致

问题描述

someGlobalKey.currentContext.findRenderObject().size用于查找占据整个屏幕的小部件的 RenderBox 时,我得到的结果与MediaQuery.of(context).size在方法的帮助下动态进行此度量时不一致didChangeMetrics()

在此处输入图像描述

奇怪的是,这种不一致只发生在我在浏览器的最大化和窗口模式之间切换时,但是在手动进行任何细微更改后,RenderBox 测量值会立即修复(尽管仍有一点点差异,例如 1 个像素)。
这也发生在手机上,但我只能通过从纵向模式更改为横向模式并查看不一致的值来测试它。
我的猜测是渲染框的大小是在动画过渡的中间设置的,但我无法确认。
在这种情况下会有什么解决方案?

Flutter 版本:Channel stable,2.0.3,在 Linux 上,语言环境 en_US.UTF-8
Google Chrome 88.0.4324.182

这是GIF 示例中使用的代码的要点。

标签: flutterflutter-layoutflutter-web

解决方案


推荐阅读