Группа переключателей Flutter: пример кода и методов

Вот пример кода для создания группы переключателей с помощью 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для заголовка.