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

Flutter项目升级后SizerUtil类无init方法编译错误求助

解决SizerUtil.init方法不存在的编译错误

升级sizer库后,新版本重构了初始化逻辑,SizerUtil不再提供init方法,需要改用组件包裹的方式完成初始化,具体修改如下:

  • 移除原来的OrientationBuilder和手动调用SizerUtil().init的代码,替换为sizer库提供的Sizer组件
  • Sizer组件的builder回调会自动传入方向和设备类型参数,内部已完成屏幕尺寸的初始化工作

修改后的代码示例:

Sizer(
  builder: (context, orientation, deviceType) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      theme: _appTheme(base),
      initialRoute: RoutingConstants.gatewayScreen,
      onGenerateRoute: RouterPage.ongenerateRoute,
    );
  },
);

如果需要获取屏幕相关参数,直接使用库提供的扩展语法即可,比如:

  • 10.h 表示屏幕高度的10%
  • 20.w 表示屏幕宽度的20%
  • 30.sp 表示自适应的字体大小

如果暂时不想适配新版本API,也可以在pubspec.yaml中指定sizer的旧版本(比如sizer: ^2.0.15),但更推荐使用新版本的标准写法以获得更好的兼容性。

内容的提问来源于stack exchange,提问作者Sweta Jain

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 07:50:28