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

Виджет 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 с выбранным размером.

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