在MediaQueryData.fromWindow()弃用后,无需传递上下文即可获得flutter中的屏幕大小,并且无需flutter中的布局构建器?

7fhtutme  于 2023-05-30  发布在  Flutter
关注(0)|答案(2)|浏览(618)

MediaQueryData.fromWindow(WidgetsBinding.instance.window)弃用后,如何在Flutter中获得屏幕大小而不传递上下文?flutter推荐的新的替代方法是MediaQueryData.fromView(View.of(context)).size.width,它涉及上下文的传递。

w51jfk4q

w51jfk4q1#

这里的'height'返回的值与没有上下文的MediaQuery.of(context).size.height相同:

final double physicalHeight = WidgetsBinding.instance.platformDispatcher.views.first.physicalSize.height;
final double devicePixelRatio =
      WidgetsBinding.instance.platformDispatcher.views.first.devicePixelRatio;
final double height = physicalHeight / devicePixelRatio;
g2ieeal7

g2ieeal72#

在任何上下文不可用的位置,您不应该需要“屏幕大小”。
你也不需要MediaQuery。使用LayoutBuilder,它可以为您提供当前布局中剩余的像素,这是您在做出布局断点决策时应该查看的唯一数字。

相关问题