-
Notifications
You must be signed in to change notification settings - Fork 225
/
CupertinoActionSheet.dart
95 lines (90 loc) · 3.08 KB
/
CupertinoActionSheet.dart
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
void main() {
runApp(new MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
home: new UserOptions(),
);
}
}
class UserOptions extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return new UserOptionsState();
}
}
class UserOptionsState extends State<UserOptions> {
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text('data'),
),
body: new Builder(
builder: (BuildContext context) {
return Center(
child: RaisedButton(
child: Text('Like my Work ?'),
onPressed: () {
containerForSheet<String>(
context: context,
child: CupertinoActionSheet(
title: const Text('Choose frankly 😊'),
message: const Text(
'Your options are '),
actions: <Widget>[
CupertinoActionSheetAction(
child: const Text('🙋 Yes'),
onPressed: () {
Navigator.pop(context, '🙋 Yes');
},
),
CupertinoActionSheetAction(
child: const Text('🙋 No'),
onPressed: () {
Navigator.pop(context, '🙋 No');
},
),
CupertinoActionSheetAction(
child: const Text("🙋 Can't say"),
onPressed: () {
Navigator.pop(context, "🙋 Can't say");
},
),
CupertinoActionSheetAction(
child: const Text("🙋 Decide in next post"),
onPressed: () {
Navigator.pop(context, "🙋 Decide in next post");
},
),
],
cancelButton: CupertinoActionSheetAction(
child: const Text('Cancel'),
isDefaultAction: true,
onPressed: () {
Navigator.pop(context, 'Cancel');
},
)),
);
}),
);
},
),
);
}
void containerForSheet<T>({BuildContext context, Widget child}) {
showCupertinoModalPopup<T>(
context: context,
builder: (BuildContext context) => child,
).then<void>((T value) {
Scaffold.of(context).showSnackBar(new SnackBar(
content: new Text('You clicked $value'),
duration: Duration(milliseconds: 800),
));
});
}
}