对于基于屏幕的字体大小,我建议使用Height
作为参考。
例如:
double unitHeightValue = MediaQuery.of(context).size.height * 0.01;
double multiplier = 25;
return Text(
'Some Text',
style: TextStyle(
fontSize: multiplier * unitHeightValue,
),
);
通过这种方法,您将获得完美的像素文本大小,并具有您选择的乘数值的额外优势。
这类似于dp
or sp
Android 中的概念。
Update:
经过一些额外的经验后,我意识到选择Height
作为参考仅适用于移动设备,尤其是在纵向模式/方向下。
简单来说,设备的主滚动轴在设备的纵向模式下是垂直的。
因此,我建议根据您的应用程序的需要选择/更改参考文献。
即,如果您正在开发的应用程序绝对是仅纵向且不支持旋转的移动应用程序,则上述代码应该可以正常工作,没有任何问题。
然而,如果支持 flutter web 或仅支持移动应用程序中的旋转,当用户旋转设备时,上述方法可能无法给出期望的结果。
在这种情况下,由于水平显示器可以访问 Web,因此指代屏幕宽度对于 Flutter Web 来说是有意义的。
但在支持旋转的情况下,您可以选择在所有方向上坚持使用宽度作为参考或根据方向更新参考。