Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗flPmFdRd 79 of 125 menu
◀ ▶

RadioGroup и Radio в Flutter

Когда из списка можно выбрать только один пункт, используют радиокнопки. В актуальном Material 3 группу оформляют виджетом RadioGroup: он задаёт общее groupValue и onChanged для всех потомков.

У каждого Radio указывают только value - свой идентификатор варианта. Параметра groupValue у отдельного Radio нет: выбранность сравнивает родительская RadioGroup. Текущий выбор хранят в State:

import 'package:flutter/material.dart'; void main() { runApp(const MaterialApp(home: HomePage())); } class HomePage extends StatefulWidget { const HomePage({super.key}); @override State<HomePage> createState() => _HomePageState(); } class _HomePageState extends State<HomePage> { String delivery = 'pickup'; @override Widget build(BuildContext context) { return Scaffold( body: Padding( padding: const EdgeInsets.all(16), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ const Text('Delivery method'), RadioGroup<String>( groupValue: delivery, onChanged: (value) { setState(() { delivery = value!; }); }, child: Column( children: [ Row( children: [ Radio<String>(value: 'pickup'), const Text('Pickup'), ], ), Row( children: [ Radio<String>(value: 'courier'), const Text('Courier'), ], ), ], ), ), const SizedBox(height: 8), Text('Selected: $delivery'), ], ), ), ); } }

Сделайте RadioGroup с тремя вариантами: 'M', 'F', 'Unspecified'. Храните выбор в String в State и выводите его текстом под группой.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить