Виджет SimpleDialogOption
Виджет SimpleDialogOption кладут в children
у
SimpleDialog.
Подпись передают в child, обычно Text,
нажатие обрабатывают в onPressed,
результат возвращают через Navigator.pop с value.
Синтаксис
SimpleDialogOption(
onPressed: () {
Navigator.pop(context, 'abcde');
},
child: Text('abcde'),
)
Параметры
| Параметр | Описание |
|---|---|
child |
Текст или виджет пункта. |
onPressed |
Действие при выборе пункта. |
Пример
Давайте откроем SimpleDialog с двумя пунктами:
import 'package:flutter/material.dart';
void main()
{
runApp(const MaterialApp(home: OptionDemo()));
}
class OptionDemo extends StatelessWidget
{
const OptionDemo({super.key});
@override
Widget build(BuildContext context)
{
return Scaffold(
body: Center(
child: ElevatedButton(
onPressed: () {
showDialog(
context: context,
builder: (ctx) {
return SimpleDialog(
title: Text('abcde'),
children: [
SimpleDialogOption(
onPressed: () => Navigator.pop(ctx, 1),
child: Text('12345'),
),
SimpleDialogOption(
onPressed: () => Navigator.pop(ctx, 2),
child: Text('abcde'),
),
],
);
},
);
},
child: Text('12345'),
),
),
);
}
}
Диалог покажет два SimpleDialogOption, выбор закроет окно с числом.
Пример
Давайте выведем один пункт по центру в учебном окне:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: SimpleDialog(
children: [
SimpleDialogOption(
onPressed: () {},
child: Text('abcde'),
),
],
),
),
),
),
);
}
На экране виден один кликабельный пункт с текстом 'abcde'.
Смотрите также
-
виджет
SimpleDialog,
куда кладутSimpleDialogOption -
функция
showDialog,
которой открываютSimpleDialog -
виджет
AlertDialog,
который показывает заголовок и кнопки actions -
виджет
ListTile,
которым похоже оформляют строки в меню