根据Flutter中的屏幕宽度更改文本大小

时间:2019-05-22 04:02:07

标签: flutter

我希望文本大小保持不变,但是在较大屏幕宽度的设备上我希望文本大小更大。

MediaQueryData queryData;

  @override
  Widget build(BuildContext context) {
    queryData = MediaQuery.of(context);
    Text("Hello.",
        style: TextStyle(
        fontSize: queryData.size.width, color: Colors.white),
 ),

}

但是,当我尝试使用queryData.size.width时,它变得如此之大。在这种情况下,我希望根据不同的设备屏幕来扩展文本。

left: ipad, right: iphone X

4 个答案:

答案 0 :(得分:0)

我们可以使用view vw和vh单位来提供字体大小,这将使您的文本在不同的视口大小下更加可见。

h1 {
  font-size: 5.9vw;
}
h2 {
  font-size: 3.0vh;
}
p {
  font-size: 2vmin;
}


1vw = 1% of viewport width
1vh = 1% of viewport height
1vmin = 1vw or 1vh, whichever is smaller
1vmax = 1vw or 1vh, whichever is larger

答案 1 :(得分:0)

您只需要将媒体查询的结果乘以一个常数即可。

double width = MediaQuery.of(context).size.width;
return Text(
  "Hello.",
  style: TextStyle(
    fontSize: width * 0.2,
    color: Colors.white,
  ),
);

答案 2 :(得分:0)

您的问题也与容器,按钮等有关。因此,我建议您检查一下this惊人的开源(使用阿里巴巴redux)如何使用utility-adapter文件解决了此问题account标题页中的几个地方。

另一个不错的选择是检查flutter-screen-util依赖项,那里有一个很好的例子。

答案 3 :(得分:0)

您可以使用flutter_screenutil来设置字体大小以响应任何屏幕布局,与此包一起,您还可以通过setWidth()和setHeight()方法使其他窗口小部件响应, 您可以在这里查看其文档:flutter_screenutil