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

Flutter添加TextField时报“被调用的构造函数不是const构造函数”求助

错误原因
  1. 组件嵌套逻辑错误:Expanded 组件只能作为 Row、Column、Flex 这类弹性布局组件的直接子节点,你当前代码里把 Expanded 套在了 Container 内部,Container 不属于弹性布局父节点,会触发布局异常,部分版本的Flutter会误抛出const构造函数相关的错误提示。
  2. 隐式const校验问题:Text 组件拥有const构造函数,而 TextField 没有const构造函数,如果你代码省略部分的上层父节点加了 const 修饰符,就会要求所有子组件都具备const构造函数,替换成 Text 符合const要求所以能正常运行,换成没有const构造的 TextField 就会抛出对应错误。
解决方案

修正组件嵌套结构,把 Expanded 放到 Row 的直接子节点层级,不要用Container包裹Expanded,把padding逻辑移到TextField外层即可,同时检查所有上层父节点,确认没有给包含TextField的父组件加const修饰符。修改后的对应代码段如下:

Row(
  crossAxisAlignment: CrossAxisAlignment.center,
  mainAxisAlignment: MainAxisAlignment.center,
  children: <Widget>[
    Icon(Icons.search, size: 36.0),
    Expanded(
      child: Container(
        padding: EdgeInsets.all(3.0),
        child: TextField(
          decoration: InputDecoration(
            hintText: "What are you looking for?",
            border: InputBorder.none,
          ),
        ),
      ),
    ),
    Icon(Icons.account_circle, size: 36.0),
  ]
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 20:06:04