Flutter SDK升级至3.3.4后出现两类编译错误求助
问题解决方案
1. EdgeInsets 无法赋值给 Margins? 错误
原因
你使用的 flutter_html 包适配Flutter 3.3.4时,将Style类中margin和padding的参数类型从EdgeInsets改为了包内自定义的Margins类型,导致原有EdgeInsets.zero无法匹配参数类型。
修复方法
将代码中的EdgeInsets.zero替换为flutter_html提供的Margins.zero:
修改后的代码片段:
FittedBox( child: Html( data: article.title, style: { 'body': Style( margin: Margins.zero, padding: Margins.zero, fontSize: _articleTileFont(context), lineHeight: const LineHeight(1.4), fontWeight: FontWeight.bold, maxLines: 3, textOverflow: TextOverflow.ellipsis, ), }, ), )
如果编辑器提示找不到Margins,确保已导入flutter_html相关文件:
import 'package:flutter_html/flutter_html.dart';
2. FontSize 构造函数非const错误
原因
flutter_html包更新后,FontSize的构造函数不再是const类型,因此不能用const关键字修饰实例化语句。
修复方法
去掉所有return const FontSize(...)中的const关键字:
修改后的代码片段:
FontSize _articleTileFont(BuildContext context) { if (Responsive.isMobile(context)) { return FontSize(25); } else if (Responsive.isTabletPortrait(context)) { return FontSize(48); } else if (Responsive.isTablet(context)) { return FontSize(65); } else { return FontSize(25); } }
内容的提问来源于stack exchange,提问作者Punkkk
相关产品推荐
相关产品推荐

