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

Flutter嵌套Container设置decoration触发color冲突报错如何解决

错误原因

Flutter 框架对Container组件做了明确的参数校验:color属性本质是decoration配置项中BoxDecoration的color属性的快捷语法糖,二者不能同时赋值,否则就会触发如下断言失败:

错误:不可同时设置color和decoration属性。若需同时配置两者,请使用"decoration: BoxDecoration(color: color)"的写法。
'package:flutter/src/widgets/container.dart':断言失败,第274行第15位:'color == null || decoration == null'

修复方案

将单独定义在Container层级的color属性移动到BoxDecoration的内部配置中,删除Container层级的color属性即可同时实现背景色和圆角效果。

修改后完整代码
Container(
  height: 250,
  child: PageView.builder(
    controller: _pageController,
    itemCount: listTmp.length,
    itemBuilder: (context, index) {
      return Padding(
        padding: const EdgeInsets.only(left: 5, right: 5),
        child: Container(
          decoration: BoxDecoration(
            borderRadius: BorderRadius.circular(10),
            color: Colors.red, // 背景色移到此处配置
          ),
          height: 100,
          child: Text(listTmp[index]),
        ),
      );
    },
    onPageChanged: (index) {
      setState(() {
        _currentIndex = index;
      });
    },
  ),
)
注意事项
  • 仅当Container没有配置decoration属性时,才能直接在Container层级设置color属性
  • 后续需要给Container添加边框、渐变、阴影等装饰效果时,所有样式统一在BoxDecoration中配置即可

内容的提问来源于stack exchange,提问作者Lê Duy Tuấn Vũ

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 20:45:03