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);
}
}