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

Flutter中如何遍历answerVariants生成CheckboxListItem的全部多选框选项?

问题解决:多选框列表显示全部选项

当前代码的核心问题有两点:

  1. 复用了外层列表的index去访问选项列表answerVariants,逻辑错误(比如第n个问题只会取自己选项列表的第n个元素,而非全部)
  2. 手动创建仅包含单个元素的列表,没有遍历所有选项生成对应的多选框模型

修改checkboxItems的代码,通过map遍历所有answerVariants元素,将每个元素转化为CheckboxListTileModel即可:

checkboxItems: viewModel.data?.questions[index].answerVariants?.map((variant) {
  return CheckboxListTileModel(
    answer: variant.text ?? "",
    isChecked: false,
    image: null
  );
}).toList() ?? [],

完整修改后的对应代码段:

default:
  return SizedBox(
      height: 550,
      child: CheckboxListItem(
          title: viewModel.data?.questions[index].text ?? "",
          checkboxItems: viewModel.data?.questions[index].answerVariants?.map((variant) {
            return CheckboxListTileModel(
              answer: variant.text ?? "",
              isChecked: false,
              image: null
            );
          }).toList() ?? [],
          isEditable: true
      )
  )

说明:

  • 用map遍历当前问题的所有answerVariants选项,逐个生成对应的多选框模型
  • 调用toList()将迭代器转为列表,匹配checkboxItems的类型要求
  • 用?? []处理answerVariants为null的情况,避免空指针异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 03:01:21