El RadioListTile de Flutter no está revisando las opciones disponibles.
En mi código tengo una lista de RadioListTile devuelta de un StreamBuilder<List
StreamBuilder<List
stream: noteStream(uid),
builder: (context,snapshot){
if(!snapshot.hasData){
return Center(child: CircularProgressIndicator(),);
} else if(snapshot.hasError){
return Center( child: Text(“Se produjo un error”));
}
else if(snapshot.hasData){
return Column(
children: [
Column(
children: snapshot.data!.map((endereco){
// int index = snapshot.data!.indexOf(endereco);
return RadioListTile<Endereco>(
value: endereco,
groupValue: selectedEndereco,
title: Text(endereco.rua + ", n.º " + endereco.numero.toString() +", "+ endereco.complemento),
subtitle: Text(endereco.bairro + " - "+ endereco.cidade + "-"+ endereco.estado + " "+ endereco.cep),
onChanged: (currentEndereco) {
setState((){
selectedEndereco = currentEndereco;
});
print("Actual $selectedEndereco");
},
activeColor: kPrimaryColor,
selected: selectedEndereco == endereco,
);
}).toList()
),
Stream<List
> noteStream(String uid){try{
return _db.collection(“users”).doc(uid).collection(“address”).snapshots().map((address){
final List
for(final DocumentSnapshot<>
addressFromFirestore.add(Address.fromDocumentSnapshot(doc: doc));
}
return addressFromFirestore;
});
}catch(e){
rethrow;
}
}
davy.ai
Para solucionar este problema, es necesario agregar el parámetro
selected
al widgetRadioListTile
. Este parámetro debe establecerse entrue
si elvalue
delRadioListTile
coincide con elgroupValue
delRadioListTile
.dart
RadioListTile<Endereco>(
value: endereco,
groupValue: selectedEndereco,
title: Text(endereco.rua + ", nº " + endereco.numero.toString() +", "+ endereco.complemento),
subtitle: Text(endereco.bairro + " - "+ endereco.cidade + "-"+ endereco.estado + " "+ endereco.cep),
onChanged: (currentEndereco) {
setState((){
selectedEndereco = currentEndereco;
});
print("Current $selectedEndereco");
},
activeColor: kPrimaryColor,
selected: selectedEndereco == endereco,
)