Класс CheckedPopupMenuItem
Класс CheckedPopupMenuItem наследует PopupMenuItem и рисует галочку.
Состояние - checked,
подпись - child,
value - как у PopupMenuItem.
Используют для переключателей в меню.
Синтаксис
CheckedPopupMenuItem(
value: true,
checked: true,
child: Text('abcde'),
)
Параметры
| Параметр | Описание |
|---|---|
checked |
Показать галочку слева. |
child |
Текст пункта. |
value |
Значение при выборе. |
Пример
Давайте покажем отмеченный пункт:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: PopupMenuButton(
itemBuilder: (context) => [
CheckedPopupMenuItem(
value: 1,
checked: true,
child: Text('abcde'),
),
CheckedPopupMenuItem(
value: 2,
checked: false,
child: Text('12345'),
),
],
),
),
),
),
);
}
У первого пункта видна галочка.
Пример
Давайте переключим checked из onSelected:
import 'package:flutter/material.dart';
void main()
{
runApp(const MaterialApp(home: CheckMenu()));
}
class CheckMenu extends StatefulWidget
{
const CheckMenu({super.key});
@override
State<CheckMenu> createState() => _CheckMenuState();
}
class _CheckMenuState extends State<CheckMenu>
{
bool on = true;
@override
Widget build(BuildContext context)
{
return Scaffold(
body: Center(
child: PopupMenuButton(
onSelected: (_) => setState(() => on = !on),
itemBuilder: (context) => [
CheckedPopupMenuItem(
value: 1,
checked: on,
child: Text('abcde'),
),
],
child: Text('12345'),
),
),
);
}
}
Повторный выбор пункта сменит галочку.
Смотрите также
-
класс
PopupMenuItem,
обычный пункт без галочки -
виджет
PopupMenuButton,
кнопка меню -
виджет
Checkbox,
галочка на экране -
виджет
PopupMenuDivider,
разделитель пунктов