【问题标题】:Flutter : How to Make just selected value is true in list view builderFlutter:如何在列表视图构建器中使刚刚选择的值为真
【发布时间】:2021-02-10 02:24:03
【问题描述】:

我有一个来自 api 的地址的动态列表,我在列表视图生成器中列出它,我想通过复选框选择一个地址并将另一个地址复选框的值设为 false,我该如何处理点

这是我的列表视图代码

ListView.builder(
                                                itemCount: adminAcceptStatusAdd
                                                        .length ??
                                                    0,
                                                scrollDirection: Axis.vertical,
                                                shrinkWrap: true,
                                                itemBuilder: (context, index) {
                                                  return Padding(
                                                      padding:
                                                          const EdgeInsets.all(
                                                              4.0),
                                                      child: Card(
                                                          color:
                                                              Colors.grey[200],
                                                          child: Padding(
                                                              padding:
                                                                  const EdgeInsets
                                                                          .all(
                                                                      10.0),
                                                              child: Column(
                                                                  mainAxisAlignment:
                                                                      MainAxisAlignment
                                                                          .start,
                                                                  crossAxisAlignment:
                                                                      CrossAxisAlignment
                                                                          .start,
                                                                  children: [
                                                                    Row(
                                                                      mainAxisAlignment:
                                                                          MainAxisAlignment
                                                                              .spaceBetween,
                                                                      children: [
                                                                        Padding(
                                                                          padding: const EdgeInsets.only(
                                                                              left: 4,
                                                                              right: 4),
                                                                          child:
                                                                              Container(
                                                                            width:
                                                                                MediaQuery.of(context).size.width * .5,
                                                                            child:
                                                                                Text(
                                                                              adminAcceptStatusAdd[index]['title'],
                                                                              style: TextStyle(color: Colors.black, fontSize: 18),
                                                                            ),
                                                                          ),
                                                                        ),
                                                                        MyCheckbox(
                                                                            value: //isSelected,
                                                                                _isFalse[index],
                                                                            checkedFillColor: Constants.skyColor(),
                                                                            onChanged: (bool value) => setState(() {
                                                                                  //isFavourite[index] = true;
                                                                                  _isFalse[index] = !_isFalse[index];
                                                                                  // _isTrue[index] = false;
                                                                                })),
                                                                        
                                                                      ],
                                                                    ),
                                                                  ]))));
                                                })

【问题讨论】:

  • 我觉得这个问题不是很清楚。您能否描述并提供您已经实现的代码并更清楚地描述所需的行为?

标签: flutter listview dart


【解决方案1】:

如果您需要选择一个且只有一个地址,您应该使用 RadioGroup 而不是 Checkbox

【讨论】:

  • 我会尝试并回复你
猜你喜欢
  • 2018-07-15
  • 1970-01-01
  • 2015-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多