Flutter 如何在list view.builder中取消选择已选定的

Flutter 如何在list view.builder中取消选择已选定的,flutter,listview,dart,Flutter,Listview,Dart,我试图在我的listview.builder上实现单一选择,这样在点击一个项目时,其他项目将被取消选择,而只有最后一次点击被选中。这是我的逻辑,但它现在有多种选择,我被困在如何使它单一 FlatButton( onPressed: () { setState(() {

我试图在我的
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"),
                                    ),
                                  ),
                                ),
                              ),
                            ),
                          ),
                        ],
                      );
                    }
                ),

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

然后,您可以检查列表中每个项目的值,如果它等于显示您想要的内容

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

检查此项