Mih*_*iha 6 size screen flutter
在我的 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 返回的值与以像素为单位的实际屏幕分辨率不同?
谢谢
根据size 属性的文档:
以逻辑像素为单位的媒体大小(例如,屏幕的大小)。
逻辑像素在不同设备上的视觉尺寸大致相同。物理像素是设备上实际硬件像素的大小。每个逻辑像素的物理像素数由 devicePixelRatio 描述。
所以你会MediaQuery.of(context).size.width * MediaQuery.of(context).devicePixelRatio得到物理像素的宽度。