在Flutter 3.10中,使用`MediaQuery`获取`Size`的更好方法是什么

llmtgqce  于 2023-06-30  发布在  Flutter
关注(0)|答案(1)|浏览(184)

Flutter 3.10为MediaQuery的使用带来了一些改进。我看到我们可以像往常一样使用MediaQuery.of(context).size来获得Size,但现在我们可以使用MediaQuery.sizeOf(context)
哪一个性能更好?后者?建议是什么?

编辑(2023-06-15):* 我在提炼这个问题。这个问题的核心不是关于获取Size,这只是一个简单的例子,说明了使用MediaQuery的新方法,使用新的可用方法获取相同数据的新方法。这可能是MediaQuery.of(context).platformBrightness-MediaQuery.platformBrightnessOf(context)或其他。

w1jd8yoj

w1jd8yoj1#

在阅读了一些资源后,@peter-koltai分享的评论非常准确。
那么答案可以总结如下(* 总结来自Andrea Bizzoto*):

  • 通过调用MediaQuery.of(context).size/padding/orientation,当任何MediaQuery属性更改时(性能降低),小部件将重新构建。通过调用MediaQuery.sizeOf/paddingOf/orientationOf(context),小部件将在属性更改时重建,避免不必要的重建。

看看这个issue,它很好地解释了这个概念。

相关问题