Version 1:
| void _showDialog() { | |
| showDialog( | |
| context: context, | |
| builder: (BuildContext context) { | |
| // return object of type Dialog | |
| return AlertDialog( | |
| title: new Text("Alert Dialog title"), | |
| content: new Text("Alert Dialog body"), | |
| actions: <Widget>[ | |
| // usually buttons at the bottom of the dialog | |
| new FlatButton( | |
| child: new Text("Close"), | |
| onPressed: () { | |
| Navigator.of(context).pop(); | |
| }, | |
| ), | |
| ], | |
| ); | |
| }, | |
| ); | |
| } |
Version 2:
Future<void> showListDialog(Function onChange) async {
int index = await showDialog<int>(
context: context,
builder: (BuildContext context) {
var child = Column(
children: <Widget>[
ListTile(title: Text("Please select:")),
Expanded(
child: ListView.builder(
itemCount: 30,
itemBuilder: (BuildContext context, int index) {
return ListTile(
title: Text("$index"),
onTap: () => Navigator.of(context).pop(index),
);
},
)),
],
);
return Dialog(child: child,backgroundColor: Colors.transparent);
},
);
if (index != null) {
onChange(index);
}
}