Android 用于检查设备大小的flatter MediaQuery.of(context).size.width在iOS模拟器中总是返回相同的错误值

Android 用于检查设备大小的flatter MediaQuery.of(context).size.width在iOS模拟器中总是返回相同的错误值,android,ios,flutter,Android,Ios,Flutter,我正在开发一款颤振应用程序,它需要调整小屏幕上的元素大小(iPhone 5S、SE、6S、Galaxy 5S等) 为了做到这一点,我调用了double width=MediaQuery.of(context).size.width,如果该值低于750像素(iPhone 6S大小),元素就会变小 这在设备上运行得非常好,但在iOS模拟器中,无论在哪个模拟设备上运行,该值总是很小(~375)。这基本上会使应用程序在模拟器上运行后无法使用,因为它总是显示“小”版本 有没有更好的方法来获得与iOS模拟器

我正在开发一款颤振应用程序,它需要调整小屏幕上的元素大小(iPhone 5S、SE、6S、Galaxy 5S等)

为了做到这一点,我调用了
double width=MediaQuery.of(context).size.width
,如果该值低于
750
像素(iPhone 6S大小),元素就会变小

这在设备上运行得非常好,但在iOS模拟器中,无论在哪个模拟设备上运行,该值总是很小(~375)。这基本上会使应用程序在模拟器上运行后无法使用,因为它总是显示“小”版本


有没有更好的方法来获得与iOS模拟器配合使用的设备大小?或者其他适应屏幕大小的方法?

我找到了!结果是有“逻辑”像素(系统在这里输出)和“设备”像素,它们是通过读取这两个像素之间的比率来计算的

当“像素”可以有子像素时,如never iDevices大大提高了其实际分辨率,但像素计数没有乘以相同的因子时,使用此选项

double logicalPixelWidth = MediaQuery.of(context).size.width;
double devicePixelRatio = MediaQuery.of(context).devicePixelRatio;
double devicePixelWidth = logicalPixelWidth * devicePixelRatio;