【发布时间】:2019-11-24 21:32:03
【问题描述】:
我在尝试使用颤振使我的应用适应特定的平板电脑尺寸时感到恶心。
平板电脑是三星 Galaxy Tab S5e,屏幕为 2560x1600。
当我使用颤振返回屏幕尺寸时:
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 宽度和高度校正吗? ?
对我来说听起来不太实用。
【问题讨论】:
标签: flutter dart pixel screen-size