поскольку у вас есть значение создания группы для каждого отдельного виджета, вы должны делиться значением группы с каждым фрагментом списка радио, чтобы не создавать его для каждого переключателя. 1- переместите переменную _selection вверх в дереве виджетов для совместного использования для каждого имеющегося у вас RB и передайте его каждому RB . 2 - добавить еще один параметр в класс RB типа Function со строковым параметром и передать его в замененный параметр для каждого RB
вашего RB класс будет выглядеть примерно так:
class RB extends StatefulWidget {
RB({this.choice, this.value,this.onchanged});
final Function (String value) onChanged;
final String groupValue;
final String choice;
final String value;
@override
_RBState createState() => _RBState();
}
class _RBState extends State<RB> {
bool dense=false;
String _selection = '';
@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.all(8.0),
child: Material(
elevation: 5.0,
child: RadioListTile(
title: Text(widget.choice, style: TextStyle(color: Colors.blue,),),
value: widget.choice,
groupValue: widget.groupValue,
dense: dense,
activeColor: Colors.green,
onChanged:widget.onChanged,
),
),
);
}
}
теперь в родительском виджете:
Column(
children: <Widget>[
Container(child: RB(choice:'A',value:'All of
above',groupValue:"youValue",onChanged(value){
_selection = value;
setState((){});
})),
Конечно, вы должны разделить замененную функцию на вспомогательную функцию для поиска удобочитаемости и гибкости. ,