select 后 Flutter 复选框未删除 selecting

Flutter checkbox not deselecting after select

我有一个 API,它有一个值数组列表,可以成功地将值传递到我的单选按钮。当我 select 每个 select 值解析时,但我无法 deselect select 单选按钮。下面是我的颤动代码:


ListView.builder(    shrinkWrap:true,
                     physics:const NeverScrollableScrollPhysics(),
                     itemCount:dataOptions == null? 0: dataOptions.length,
                     itemBuilder:(BuildContext context,int index) {
                                                            return Container(
                                                                padding:
                                                                    const EdgeInsets
                                                                            .only(
                                                                        bottom:
                                                                            0.0),
                                                                child: Card(
                                                                  elevation: 0,
                                                                    child:
                                                                        ListTile(
                                                                  title: Text(
                                                                      dataOptions[index]['option_title']),
                                                                  leading:
                                                                      Radio(
                                                                    value: dataOptions[index]["option_price"],

                                                                        //below will be the default value.
                                                                        groupValue: dataOptions[index]["option_id"],
                                                                    onChanged: (value) {
                                                                      setState(
                                                                          () {
                                                                            dataOptions[index]["option_id"] = value;
                                                                        debugPrint("radioSel:$value");
                                                                      });
                                                                    },
                                                                    activeColor: Colors.green,
                                                                  ),
                                                                  trailing:
                                                                      Text(dataOptions[index]['option_price'].toString(), style:TextStyle(fontFamily: 'Montserrat',
                                                                      color: colorPink, fontWeight: FontWeight.bold,
                                                                      fontSize: 15,
                                                                    ),
                                                                  ),
                                                                )));
                                                          })


由于 groupValue 存储当前选择的值并且您使用单独的 dataOptions[index]["option_id"] 作为 groupValue 所有单选按钮彼此独立。

如果这是有意为之,请选中复选框,因为它们是用于此行为的。 CheckBox

要取消选择 Radio 小部件(如果选择了组中的另一个小部件),请执行以下操作。

//Set default option if prefered
String? _groupValue;

Radio(
  value: dataOptions[index]["option_price"],
  groupValue: _groupValue,
  onChanged: (value) {
    setState(() {
      _groupValue = value;
    });
  },
),