Виджет DropdownButton в Flutter
Когда вариантов немного и нужен компактный
выбор, подходит
DropdownButton.
На экране видна текущая подпись; по нажатию
открывается меню из элементов
DropdownMenuItem.
Параметр value - выбранное значение
сейчас; оно должно совпадать с value
одного из пунктов. Список items
собирают заранее. В onChanged
приходит новое значение или null,
если выбор сбросили - его записывают
в 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 city = 'spb';
@override
Widget build(BuildContext context) {
return Scaffold(
body: Padding(
padding: const EdgeInsets.all(16),
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
DropdownButton<String>(
value: city,
isExpanded: true, // fills the column width
items: const [
DropdownMenuItem(
value: 'msk',
child: Text('Moscow'),
),
DropdownMenuItem(
value: 'spb',
child: Text('Saint Petersburg'),
),
DropdownMenuItem(
value: 'kzn',
child: Text('Kazan'),
),
],
onChanged: (value) {
if (value == null) return;
setState(() {
city = value;
});
},
),
const SizedBox(height: 12),
Text('City code: $city'),
],
),
),
);
}
}
Сделайте DropdownButton с размерами
'S', 'M', 'L'.
Начальное значение 'M'. Под
списком выведите Text с выбранным
размером.