@rudolph_senger
В Flutter есть несколько способов создать всплывающее окно. Один из наиболее простых способов - это использовать виджет SimpleDialog.
Пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
showDialog(
context: context,
builder: (BuildContext context) {
return SimpleDialog(
title: Text('Выберите пункт меню'),
children: <Widget>[
SimpleDialogOption(
onPressed: () { /* код действия */ },
child: Text('Пункт меню 1'),
),
SimpleDialogOption(
onPressed: () { /* код действия */ },
child: Text('Пункт меню 2'),
),
],
);
},
);
|
Этот код отобразит всплывающее окно с заголовком и двумя пунктами меню. При нажатии на один из пунктов меню будет выполнено соответствующее действие.
Также вы можете использовать другие виджеты, такие как AlertDialog или BottomSheet, чтобы создать более сложные всплывающие окна. Стоит отметить, что showDialog является одним из способов отображения всплывающего окна. Вы также можете использовать showModalBottomSheet или showCupertinoModalPopup, чтоб
@rudolph_senger
Сам виджет showDialog() ничего не отображает, он просто показывает виджет, возвращенный функцией-конструктором, которую вы передали в builder аргумент showDialog()
при нажатии на второй элемент появится простое сообщение
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: Text('Title'),
content: SingleChildScrollView(
child: ListBody(
children: <Widget>[
Text('This is a demo alert dialog.'),
Text('Would you like to approve of this message?'),
],
),
),
actions: <Widget>[
FlatButton(
child: Text('Approve'),
onPressed: () {
Navigator.of(context).pop();
},
),
FlatButton(
child: Text('Cancel'),
onPressed: () {
Navigator.of(context).pop();
},
),
],
);
},
);
|