Flutter Text文本不随系统字体大小而改变

Flutter Text文本不随系统字体大小而改变


前言

在日常开发中,有些时候我们需要设置APP 字体不随系统字体的大小设置而改变,这样可以避免很多因字体改变而出现的适配性问题,本篇文章将记录怎么完成此限制。


一、设置字体系数

我们只需要在入口文件中,设置一下字体的系数就可以了,下面看一下源码

Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Container(color: Colors.white),
      builder: (context, widget) {
        return MediaQuery(
          //设置文字大小不随系统设置改变
          data: MediaQuery.of(context).copyWith(textScaleFactor: 1.0),
          child: widget,
        );
      },
    );
  }

总结

我们通过在state的build函数中,builder属性设置MediaQuery的textScaleFactor固定为1.0,这样整个flutter项目中的文字的缩放率都变成了1.0,就不会再随系统改变了。

Flutter中,可以使用Text部件来设置文本字体大小。通过在TextStyle中设置fontSize属性,可以指定文本字体大小。例如,TextStyle(fontSize: 20)表示文本字体大小为20。 另外,Flutter还提供了AutoSizeText部件,它与Text部件非常相似,唯一的区别是它可以自动调整文本大小以适应其边界。您可以通过设置minFontSize和maxFontSize参数来限制字体大小的范围。例如,AutoSizeText('A really long String', style: TextStyle(fontSize: 30), minFontSize: 18, maxLines: 4, overflow: TextOverflow.ellipsis)表示文本字体大小范围为18到30之间,同时最多显示4行文本,并在超出边界时使用省略号进行截断。 另外,如果您在使用Text部件对中文设置字体大小后,在一个Container容器中字体居中的问题,您可以使用strutStyle的forceStrutHeight参数来强制lineHeight与字体的高度一致,从而解决字体在容器中的居中问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [【FlutterFlutter auto_size_text 文本自适应大小](https://blog.csdn.net/diandianxiyu/article/details/132158756)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [flutter_manhuatai:使用 Flutter 开发漫花台漫画 app](https://download.csdn.net/download/weixin_42128558/19254872)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

半身风雪

感谢打赏,你的鼓励,是我创作的

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值