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
相关产品推荐
相关产品推荐

