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

Flutter常量构造函数报错:“被调用的构造函数不是常量构造函数”

解决Flutter中“the constructor being called isn't a const constructor”错误

嘿,这个问题我之前也碰到过!让我给你拆解一下原因和解决办法~

问题根源

你试图用const修饰BorderRadius.circular(_rowHeight / 2),但**BorderRadius.circular这个构造函数本身并不是const构造函数**——哪怕你传入的_rowHeight是const变量,也没法让整个表达式变成const类型。

两种解决方案

  • 方案一:用final替代const(最直接简单)
    既然BorderRadius.circular不支持const构造,我们直接去掉const修饰符,改用final来保证变量只被赋值一次:

    const _rowHeight = 100.0;
    final _cornerRadius = BorderRadius.circular(_rowHeight / 2);
    
  • 方案二:使用支持const的构造组合(如果必须要const常量)
    如果你确实需要_cornerRadius是const类型,可以改用BorderRadius.all搭配const Radius.circular,只要计算值是编译时常量就行:

    const _rowHeight = 100.0;
    const _cornerRadius = BorderRadius.all(Radius.circular(_rowHeight / 2));
    

    这里Radius.circular是const构造函数,且_rowHeight / 2是编译时就能确定的常量,所以整个表达式可以安全地用const修饰。

补充说明

Flutter里要求const变量的初始化表达式必须完全由const构造函数和编译时常量组成。BorderRadius.circular的内部实现没有标记为const,所以哪怕参数是const,也没法用const来修饰这个调用——这就是你看到报错的核心原因啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 09:05:44