You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级flutter_screenutil 5.0.0+2后ScreenUtil().setSp(22)失效问题咨询

问题原因及解决方案

配置存在的两处错误/遗漏项

  • 未对齐新旧版本的designSize配置:旧版本调用ScreenUtil.init(context)时如果不传designSize参数,默认使用的设计稿尺寸是Size(750, 1334),你新版本直接配置为Size(1080, 1920),设计稿基准宽度变大,相同setSp数值换算后的实际字体大小会成比例缩小,这是字体异常变小的核心原因。
  • 未继承旧版本的allowFontScaling配置:旧版本你明确设置了allowFontScaling: false关闭字体跟随系统缩放,新版本ScreenUtilInit默认该参数为true,会额外乘以系统字体缩放系数,进一步缩小了字体大小。

修复操作步骤

  1. 对齐设计稿基准尺寸:如果你的设计稿实际是750px宽度,就把designSize改回Size(750, 1334);如果确实是1080px宽度的设计稿,你需要把所有setSp的数值按1.44倍(1080/750)放大,比如原来的22改成≈32即可。
  2. 初始化时添加allowFontScaling参数关闭字体缩放,和旧版本逻辑保持一致,修改后的初始化代码参考如下:
Widget build(BuildContext context) {
    return ScreenUtilInit(
          designSize: Size(750, 1334), // 替换为你实际使用的设计稿尺寸,和旧版本对齐
          allowFontScaling: false,
          builder: () => Scaffold(...
}
  1. (可选兼容方案)如果你不想批量修改已有的setSp数值,也可以直接在ScreenUtilInit中添加textScaleFactor: 1参数强制覆盖缩放逻辑。

修复后重新运行项目,setSp返回值就会和旧版本保持一致,字体大小即可恢复正常。

内容的提问来源于stack exchange,提问作者Savan Thakkar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 21:54:00