在MediaQueryData.fromWindow(WidgetsBinding.instance.window)弃用后,如何在Flutter中获得屏幕大小而不传递上下文?flutter推荐的新的替代方法是MediaQueryData.fromView(View.of(context)).size.width,它涉及上下文的传递。
MediaQueryData.fromWindow(WidgetsBinding.instance.window)
MediaQueryData.fromView(View.of(context)).size.width
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;
g2ieeal72#
在任何上下文不可用的位置,您不应该需要“屏幕大小”。你也不需要MediaQuery。使用LayoutBuilder,它可以为您提供当前布局中剩余的像素,这是您在做出布局断点决策时应该查看的唯一数字。
2条答案
按热度按时间w51jfk4q1#
这里的'height'返回的值与没有上下文的MediaQuery.of(context).size.height相同:
g2ieeal72#
在任何上下文不可用的位置,您不应该需要“屏幕大小”。
你也不需要MediaQuery。使用LayoutBuilder,它可以为您提供当前布局中剩余的像素,这是您在做出布局断点决策时应该查看的唯一数字。