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

Flutter开发求助:List<dynamic>无法赋值给List<Widget>报错

问题

开发答题应用时,尝试用Row组件展示包含图标的答题结果列表,出现错误:
The argument type 'List' can't be assigned to the parameter type 'List'.dartargument_type_not_assignable

相关代码:

class exampage extends StatefulWidget {
  const exampage({Key? key}) : super(key: key);

  @override
  State<exampage> createState() => _exampageState();
}

class _exampageState extends State<exampage> {
  List answerResult = [
    Padding(
      padding: const EdgeInsets.all(3.0),
      child: Icon(
        Icons.check,
        color: Color.fromARGB(255, 27, 135, 76),
      ),
    ),
    Padding(
      padding: const EdgeInsets.all(3.0),
      child: Icon(
        Icons.close,
        color: Color.fromARGB(255, 223, 84, 75),
      ),
    ),
  ];
  @override
  Widget build(BuildContext context) {
    return Column(crossAxisAlignment: CrossAxisAlignment.stretch, children: [
      Row(
        children: answerResult,
      ),
    ]);
  }
}

问题原因

你声明answerResult时未指定泛型类型,仅写了List answerResult = [...],Dart会默认将其推断为List<dynamic>类型。但Row组件的children参数要求必须是List<Widget>类型,动态列表和Widget列表类型不兼容,因此触发了类型不匹配的错误。

解决方法

给answerResult明确指定泛型为Widget,修改后的声明代码如下:

List<Widget> answerResult = [
    Padding(
      padding: const EdgeInsets.all(3.0),
      child: Icon(
        Icons.check,
        color: Color.fromARGB(255, 27, 135, 76),
      ),
    ),
    Padding(
      padding: const EdgeInsets.all(3.0),
      child: Icon(
        Icons.close,
        color: Color.fromARGB(255, 223, 84, 75),
      ),
    ),
];

这样Dart就能识别该列表为Widget类型列表,与Row的children参数类型匹配,错误即可解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 04:12:39