我正在开发一个Flutter-App,它需要在小屏幕(iPhone 5S,SE,6S,Galaxy 5S等)上调整元素的大小。
为此,我打电话给double width = MediaQuery.of(context).size.width
,如果该值小于750
像素(iPhone 6S大小),则元素变小。
这在设备上效果很好,但是在iOS模拟器中,无论运行在哪个模拟设备上,该值始终很小(〜375)。基本上,这会使该应用程序随后无法在模拟器上运行,因为它始终显示“小”版本。
是否有更好的方法来获取与iOS模拟器兼容的设备尺寸?还是可能采用其他方式来适应屏幕尺寸?
答案 0 :(得分:1)
你可以使用
import 'dart:ui';
window.physicalSize.width; // This will return the physical pixels.
答案 1 :(得分:0)
我知道了!原来有“逻辑”像素(系统在这里输出)和“设备”像素,它们是通过读出两者之间的比率来计算的。
当“像素”可以具有子像素时,例如从未使用过的iDevices大大提高其实际分辨率,但像素数未乘以相同因子时,使用此
。double logicalPixelWidth = MediaQuery.of(context).size.width;
double devicePixelRatio = MediaQuery.of(context).devicePixelRatio;
double devicePixelWidth = logicalPixelWidth * devicePixelRatio;