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

Виджет SegmentedButton

Виджет SegmentedButton группирует ButtonSegment в segments. Выбранные значения - в selected как Set, смену набора - в onSelectionChanged, множественный выбор - через multiSelectionEnabled.

Синтаксис

SegmentedButton<int>( segments: [ ButtonSegment(value: 0, label: Text('abcde')), ButtonSegment(value: 1, label: Text('12345')), ], selected: {0}, onSelectionChanged: (Set<int> sel) {}, )

Параметры

Параметр Описание
segments Список ButtonSegment.
selected Набор value выбранных сегментов.
onSelectionChanged Новый набор после нажатия.

Пример

Давайте переключим два сегмента:

import 'package:flutter/material.dart'; void main() { runApp(const MaterialApp(home: SegPage())); } class SegPage extends StatefulWidget { const SegPage({super.key}); @override State<SegPage> createState() => _SegPageState(); } class _SegPageState extends State<SegPage> { Set<int> sel = {0}; @override Widget build(BuildContext context) { return Scaffold( body: Center( child: SegmentedButton<int>( segments: [ ButtonSegment(value: 0, label: Text('abcde')), ButtonSegment(value: 1, label: Text('12345')), ], selected: sel, onSelectionChanged: (s) => setState(() => sel = s), ), ), ); } }

Подсветка переходит между 'abcde' и '12345'.

Пример

Давайте включим multiSelectionEnabled:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: Center( child: SegmentedButton<int>( multiSelectionEnabled: true, segments: [ ButtonSegment(value: 1, label: Text('abcde')), ButtonSegment(value: 2, label: Text('12345')), ], selected: {1, 2}, onSelectionChanged: (s) {}, ), ), ), ), ); }

Оба сегмента могут быть выбраны одновременно.

Смотрите также

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