gpt4 book ai didi

Flutter MediaQuery.of(context).size.width 值与实际屏幕分辨率不同

转载 作者:行者123 更新时间:2023-12-03 13:31:00 28 4
gpt4 key购买 nike

在我的 Flutter 应用程序中,我试图获得真实的屏幕宽度(在每个设备上自然会有所不同)。

我正在使用 MediaQuery.of(context).size.width但我注意到返回的值与实际屏幕分辨率不匹配。

例如,

  • 在模拟器 iPhone 11 Pro Max(分辨率为 2688 x 1242)上,我得到 MediaQuery.of(context).size.width = 414
  • 在模拟器 Nexus XL(分辨率为 1440 x 2560)上,我得到 MediaQuery.of(context).size.width = 411.42857142857144
  • 在真机 iPhone 7(分辨率为 1,334 x 750)上,我得到 MediaQuery.of(context).size.width = 375

  • 有谁知道为什么 MediaQuery 返回的值与以像素为单位的实际屏幕分辨率不同?

    谢谢

    最佳答案

    根据 the size property's documentation :

    The size of the media in logical pixels (e.g, the size of the screen).

    Logical pixels are roughly the same visual size across devices. Physical pixels are the size of the actual hardware pixels on the device. The number of physical pixels per logical pixel is described by the devicePixelRatio.



    所以你会做 MediaQuery.of(context).size.width * MediaQuery.of(context).devicePixelRatio以物理像素为单位获取宽度。

    关于Flutter MediaQuery.of(context).size.width 值与实际屏幕分辨率不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59590672/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com