enum Option { A, B, C }
class SimpleDialogDemo extends StatefulWidget {
@override
_SimpleDialogDemoState createState() => _SimpleDialogDemoState();
}
class _SimpleDialogDemoState extends State<SimpleDialogDemo> {
String _choice = 'Nothing';
Future _openSimpleDialog() async {
final option = await showDialog(
context: context,
builder: (BuildContext context) {
return SimpleDialog(
title: Text('SimpleDialog'),
children: <Widget>[
SimpleDialogOption(
child: Text('Option A'),
onPressed: () {
Navigator.of(context).pop(Option.A);
},
),
SimpleDialogOption(
child: Text('Option B'),
onPressed: () {
Navigator.of(context).pop(Option.B);
},
),
SimpleDialogOption(
child: Text('Option C'),
onPressed: () {
Navigator.of(context).pop(Option.C);
},
),
],
);
}
);
switch (option) {
case Option.A:
setState(() {
_choice = 'A';
});
break;
case Option.B:
setState(() {
_choice = 'B';
});
break;
case Option.C:
setState(() {
_choice = 'C';
});
break;
default:
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('SimpleDialogDemo'),
elevation: 0,
),
body: Container(
padding: EdgeInsets.all(16),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text('Your choice is: $_choice'),
],
),
),
floatingActionButton: FloatingActionButton(
child: Icon(Icons.format_list_numbered),
onPressed: _openSimpleDialog,
),
);
}
}
![](https://img.haomeiwen.com/i16731485/45d95a2596a35010.png)
image.png
![](https://img.haomeiwen.com/i16731485/c792d71f5d2a81be.png)
image.png
网友评论