Класс ButtonSegment
Класс ButtonSegment передают в segments у
SegmentedButton.
Значение сегмента - в value,
подпись - в label,
иконка - в icon.
Выбранный сегмент задают через selected Set у SegmentedButton.
Синтаксис
ButtonSegment<int>(
value: 0,
label: Text('abcde'),
icon: Icon(Icons.home),
)
Параметры
| Параметр | Описание |
|---|---|
value |
Идентификатор сегмента в наборе selected. |
label |
Текст на сегменте. |
icon |
Иконка на сегменте. |
Пример
Давайте соберём SegmentedButton из двух сегментов:
import 'package:flutter/material.dart';
void main()
{
runApp(const MaterialApp(home: SegDemo()));
}
class SegDemo extends StatefulWidget
{
const SegDemo({super.key});
@override
State<SegDemo> createState() => _SegDemoState();
}
class _SegDemoState extends State<SegDemo>
{
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),
),
),
);
}
}
Нажатие переключает подсветку между сегментами.
Пример
Давайте добавим icon в сегмент:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: SegmentedButton<int>(
segments: [
ButtonSegment(
value: 1,
icon: Icon(Icons.star),
label: Text('abcde'),
),
],
selected: {1},
onSelectionChanged: (s) {},
),
),
),
),
);
}
Сегмент показывает звезду и текст 'abcde'.
Смотрите также
-
виджет
SegmentedButton,
которому передают segments -
виджет
ToggleButtons,
старый ряд переключателей -
виджет
ChoiceChip,
метка с выбором одного варианта -
виджет
NavigationBar,
нижняя навигацияMaterial3