如何取消选择列表视图中已选择的内容

时间:2020-10-18 23:33:45

标签: flutter listview dart

某人正在尝试在我的listview.builder上实施单选,以便在轻按某项时取消选择其他项,而仅选择最后的轻按。这是我的逻辑,但是现在它会进行多项选择,并且停留在如何使其成为单一项上。

                         FlatButton(
                            onPressed: () {
                              setState(() {
                                _bloc.similarProducts[index].selected =
                                !_bloc.similarProducts[index].selected;
                              });
                            },
                            child:  Container(
                              height: 45,
                              width:120,
                              decoration: BoxDecoration(
                                border: Border.all(
                                  color:!_bloc.similarProducts
                                  [index].selected?
                                  Colors.white:
                                  Hexcolor("#DADE66"),
                                ),
                                borderRadius: BorderRadius.circular(7),
                                color:  !_bloc.similarProducts[index].selected?
                                Hexcolor("#DADE66"):
                                Colors.white,
                              ),
                              padding: EdgeInsets.all(12),
                              child: Padding(
                                padding: const EdgeInsets.only(left:15.0, right:15.0),
                                child: Center(
                                  child: Text(
                                    !_bloc.similarProducts[index].selected?
                                    "Select": "Selected",
                                    style: TextStyle(
                                      fontWeight: FontWeight.w700,
                                      fontSize: 14,
                                      fontFamily: 'Lato',
                                      color: !_bloc.similarProducts
                                      [index].selected?
                                      Colors.white:
                                      Hexcolor("#DADE66"),
                                    ),
                                  ),
                                ),
                              ),
                            ),
                          ),
                        ],
                      );
                    }
                ),

1 个答案:

答案 0 :(得分:0)

如果只想选择一个项目,则可以创建一个新值,将其称为selectedItem。 然后在FlatButton onPressed回调上,将selectedItem设置为要选择的项目的值(该值可以是索引,id或任何唯一标识符,可能是它本身的项目)。

然后您可以检查列表中每个项目的值是否等于您想要显示的值。

这样,当您选择新项目时,旧项目将被替换,因此最终只选择了一项。