我试图使用Ffltter将我的应用程序调整到特定的平板电脑尺寸,这让我感到恶心.
这款平板电脑是三星Galaxy Tab S5e,屏幕为2560x1600.
当我使Flutter 时,使用以下命令返回屏幕尺寸:
print("Size W is ${MediaQuery.of(context).size.width}");
print("Size H is ${MediaQuery.of(context).size.height}");
我得到的是:
Size W is 1137.7777777777778
Size H is 711.1111111111111
然后,从this answer岁起,我学会了使用:
var pixRatio = MediaQuery.of(context).devicePixelRatio;
因此,现在我实际上可以使用以下命令获得正确的值:
print("Corrected size W is ${MediaQuery.of(context).size.width * pixRatio}");
print("Corrected size H is ${MediaQuery.of(context).size.height * pixRatio}");
然后得到:
Corrected size W is 2560.0
Corrected size H is 1600.0
问题是,每次我想要在屏幕上放置一个尺寸为Container
、Image
、指定为text size
等的小部件时,我必须使用如下技巧
Container(
width: 100 / pixRatio,
height: 200 / pixRatio,
),
如果我不包括/pixRatio
校正,它只是不正确地绘制,并且我得到很多像素溢出.
这是将小工具以正确的大小放到屏幕上的唯一方法吗?我的意思是,我真的需要在每次宽度和高度修正/pixRatio
时添加NEED吗?
对我来说听起来不太实际.