Eu estou tendo problema no CheckBoxListTile, ele está sendo construido pelo ListView.builder e eu estou conseguindo selecionar mais de um campo, tive a ideia de tentar mapear meus campos com o valor "false", e se caso algum fosse selecionado o value mudaria para "true", contudo não consigo passar disso. O meu objetivo é q somente um elemento do Mapa pode ser "true", ou seja, só pode ter um CheckBox selecionado por vez, caso um esteja selecionado, e o usuário clicar em outro, o primeiro desmarcará e o último será marcado.
Código:
Map<String, bool> _currencies = {
"one": false,
"two": false,
"three": false,
"one2": false,
"two2": false,
"three2": false,
"one3": false,
"two3": false,
"three3": false,
"one4": false,
"two4": false,
"three4": false,
"one5": false,
"two5": false,
"three5": false,
};
....
body: ListView.builder(
itemCount: _currencies.length,
itemBuilder: (BuildContext context, int index) {
return Material(
child: ListTile(
leading: _currencies.values.elementAt(index) == false
? Icon(null)
: Icon(Icons.check),
title: Text(_currencies.keys.elementAt(index)),
onTap: () {
setState(
() {
_currencies[_currencies.keys.elementAt(index)] =
!_currencies[_currencies.keys.elementAt(index)];
},
);
},
),
);
},
),
Aucun commentaire:
Enregistrer un commentaire