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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 06:31:21