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

Flutter开发报错:未定义命名参数'color',附代码求助排查问题

问题排查与解决方案

报错原因

你将color: _color参数传递给了Padding组件,但Flutter官方的Padding组件未提供color配置项,因此触发The named parameter 'color' isn't defined(未定义名为'color'的参数)编译错误。

修复方案

根据你的实际需求选择对应方案即可:

方案1:给Card卡片设置背景色(适配绝大多数场景)

如果你是想修改点击后卡片的背景色,只需要把color: _color参数从Padding的构造参数中,挪到Card的构造参数里即可,Card组件原生支持color属性配置背景色,修正后代码如下:

Widget _buildTodoItem(String title) {
    return Padding(
      padding: const EdgeInsets.fromLTRB(16.0, 16.0, 16.0, 0.0),
      child: GestureDetector(
        onTap: () =>
            setState(() {
              _color = Colors.black;
              }),
        child: Card(
        // color参数移到此处
        color: _color,
        child: Padding(
          padding: const EdgeInsets.all(8.0),
          child: Text(title, style: const TextStyle(color: Colors.white)),
        ),
      ),
    ),
    );
  }

注:上述代码额外修改了Text的文字颜色为白色,避免黑色背景下文字无法识别。

方案2:给Padding包裹的内容区单独设置背景色

如果你确实需要给Padding对应的区域单独设置背景色,需要额外嵌套一层Container组件,Container原生支持color属性配置,修正后代码如下:

Widget _buildTodoItem(String title) {
    return Padding(
      padding: const EdgeInsets.fromLTRB(16.0, 16.0, 16.0, 0.0),
      child: GestureDetector(
        onTap: () =>
            setState(() {
              _color = Colors.black;
              }),
        child: Card(
        child: Container(
          color: _color,
          padding: const EdgeInsets.all(8.0),
          child: Text(title, style: const TextStyle(color: Colors.white)),
        ),
      ),
    ),
    );
  }

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 06:06:03