Вот пример кода для создания группы переключателей с помощью Flutter:
import 'package:flutter/material.dart';
class RadioGroupWidget extends StatefulWidget {
@override
RadioGroupWidgetState createState() => RadioGroupWidgetState();
}
class RadioGroupWidgetState extends State<RadioGroupWidget> {
int selectedRadio = 0;
setSelectedRadio(int val) {
setState(() {
selectedRadio = val;
});
}
@override
Widget build(BuildContext context) {
return Column(
children: <Widget>[
RadioListTile(
value: 1,
groupValue: selectedRadio,
title: Text("Option 1"),
onChanged: (val) {
setSelectedRadio(val);
},
),
RadioListTile(
value: 2,
groupValue: selectedRadio,
title: Text("Option 2"),
onChanged: (val) {
setSelectedRadio(val);
},
),
RadioListTile(
value: 3,
groupValue: selectedRadio,
title: Text("Option 3"),
onChanged: (val) {
setSelectedRadio(val);
},
),
],
);
}
}
void main() {
runApp(MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Radio Button Group'),
),
body: RadioGroupWidget(),
),
));
}
В этом примере мы создаем класс RadioGroupWidget, который расширяет StatefulWidget. Он сохраняет выбранное значение переключателя с помощью переменной selectedRadioи обновляет его с помощью метода setSelectedRadio.
Внутри метода buildмы используем виджет Columnдля отображения списка виджетов RadioListTile. Каждый RadioListTileпредставляет собой параметр переключателя с уникальным значением. Свойству groupValueприсвоено значение selectedRadio, а обратный вызов onChangedиспользуется для обновления выбранного переключателя.
В функции mainмы оборачиваем RadioGroupWidgetMaterialAppи отображаем его в Scaffoldс помощью AppBarдля заголовка.