首页 > 解决方案 > 如何从颤动的选项列表中制作清单?

问题描述

样本数据:

  var electricianmulti = [
  new Multimodel(
      question: "What services are you looking for?",
      options: ["Complete wiring", "switches", "water motor", "MCB & fuse"],

  new Multimodel(
      question: "What time of the day do you prefer?",
      options: ["Early Morning", "Morning", "Afternoon", "Evening"],];
      

我正在从 listview.generate 制作复选框,如下所示 -

children: <Widget>[
                  ...List.generate(
                      electricianmulti[i].options.length,
                      (index) => Container(
                          padding: EdgeInsets.all(5),
                          margin: EdgeInsets.all(10),
                          child: CheckboxListTile(
                            // controlAffinity: ListTileControlAffinity.leading,
                            title: new Text(
                              electricianmulti[i].options[index].toString(),
                              style: optionstxt,
                            ),
                            value:isselected,
                            activeColor: Colors.blue,
                            checkColor: Colors.white,
                            onChanged: (bool value) {
                              setState(() {
                               isselected=value
                              });
                            },

这段代码就像我点击任何一个框都被选中一样。我尝试制作一个 bool 数组并根据它进行更新,'i'但它似乎也不起作用。我在这里做错了什么?

标签: fluttercheckboxlist

解决方案


value: isselected

采用单个布尔值并将其分配给所有复选框。将 isselected 更改为布尔值列表,然后使用

value: isselected[i];

同样在 setState 中,使用

isselected[i] = value;

确保 isselected 的长度等于复选框的数量。


推荐阅读