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

Flutter Divider类无法使用?编译报错无未命名常量构造方法

Flutter Divider报错:"The class 'Divider' doesn't have an unnamed constant constructor" 解决方法

问题场景

近期未修改代码的情况下,突然无法使用Flutter的Divider类,Android Studio和VSCode均报错:

"The class 'Divider' doesn't have an unnamed constant constructor. Try calling a different constructor."

涉及代码示例:
在ListView.separated中:

ListView.separated(
  separatorBuilder: (BuildContext context, int index) => const Divider(height: 2.0,),
  itemCount: 5,
  itemBuilder: (BuildContext context, int index) {
    // ...
  },
)

在Column中:

Column(
  children: <Widget>[
    Expanded(
      child: Card(
        child: SizedBox.expand(),
      ),
    ),
    Divider(),
    // ...
  ],
)

解决方法

1. 确认导入正确的Divider类

检查代码顶部的import语句,确保使用的是Flutter Material库的Divider,而非第三方库的同名类:

import 'package:flutter/material.dart';

如果有其他库也包含Divider,使用hide关键字排除冲突:

import 'package:third_party_lib/third_party_lib.dart' hide Divider;

2. 移除不必要的const关键字

如果代码中使用了const Divider(...),而当前环境下Divider的默认构造函数不支持const(或存在依赖冲突导致无法识别const构造),直接去掉const:

// 修改前
const Divider(height: 2.0,)
// 修改后
Divider(height: 2.0,)

另外,如果Column的children列表被标记为const,而Divider无法作为const组件,需要去掉列表前的const:

// 修改前
Column(
  children: const <Widget>[
    Expanded(child: Card(child: SizedBox.expand())),
    Divider(),
  ],
)
// 修改后
Column(
  children: <Widget>[
    Expanded(child: Card(child: SizedBox.expand())),
    Divider(),
  ],
)

3. 更新Flutter SDK和依赖

执行以下命令升级SDK和依赖,修复版本兼容问题:

flutter upgrade
flutter pub upgrade

完成后重启IDE并重新编译项目。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 23:30:02