Add CupertinoActionSheet to gallery (#20411)
diff --git a/examples/flutter_gallery/lib/demo/cupertino/cupertino.dart b/examples/flutter_gallery/lib/demo/cupertino/cupertino.dart
index 641c168..2b7e62c 100644
--- a/examples/flutter_gallery/lib/demo/cupertino/cupertino.dart
+++ b/examples/flutter_gallery/lib/demo/cupertino/cupertino.dart
@@ -3,8 +3,8 @@
// found in the LICENSE file.
export 'cupertino_activity_indicator_demo.dart';
+export 'cupertino_alert_demo.dart';
export 'cupertino_buttons_demo.dart';
-export 'cupertino_dialog_demo.dart';
export 'cupertino_navigation_demo.dart';
export 'cupertino_picker_demo.dart';
export 'cupertino_refresh_demo.dart';
diff --git a/examples/flutter_gallery/lib/demo/cupertino/cupertino_dialog_demo.dart b/examples/flutter_gallery/lib/demo/cupertino/cupertino_alert_demo.dart
similarity index 72%
rename from examples/flutter_gallery/lib/demo/cupertino/cupertino_dialog_demo.dart
rename to examples/flutter_gallery/lib/demo/cupertino/cupertino_alert_demo.dart
index b600100..eca06c3 100644
--- a/examples/flutter_gallery/lib/demo/cupertino/cupertino_dialog_demo.dart
+++ b/examples/flutter_gallery/lib/demo/cupertino/cupertino_alert_demo.dart
@@ -5,14 +5,14 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
-class CupertinoDialogDemo extends StatefulWidget {
- static const String routeName = '/cupertino/dialog';
+class CupertinoAlertDemo extends StatefulWidget {
+ static const String routeName = '/cupertino/alert';
@override
- _CupertinoDialogDemoState createState() => new _CupertinoDialogDemoState();
+ _CupertinoAlertDemoState createState() => new _CupertinoAlertDemoState();
}
-class _CupertinoDialogDemoState extends State<CupertinoDialogDemo> {
+class _CupertinoAlertDemoState extends State<CupertinoAlertDemo> {
final GlobalKey<ScaffoldState> _scaffoldKey = new GlobalKey<ScaffoldState>();
void showDemoDialog<T>({BuildContext context, Widget child}) {
@@ -32,12 +32,27 @@
});
}
+ void showDemoActionSheet<T>({BuildContext context, Widget child}) {
+ showCupertinoModalPopup<T>(
+ context: context,
+ builder: (BuildContext context) => child,
+ ).then<void>((T value) {
+ if (value != null) {
+ _scaffoldKey.currentState.showSnackBar(
+ new SnackBar(
+ content: new Text('You selected: $value'),
+ ),
+ );
+ }
+ });
+ }
+
@override
Widget build(BuildContext context) {
return new Scaffold(
key: _scaffoldKey,
appBar: new AppBar(
- title: const Text('Cupertino Dialogs'),
+ title: const Text('Cupertino Alerts'),
),
body: new ListView(
padding: const EdgeInsets.symmetric(vertical: 24.0, horizontal: 72.0),
@@ -129,6 +144,48 @@
);
},
),
+ const Padding(padding: EdgeInsets.all(8.0)),
+ new CupertinoButton(
+ child: const Text('Action Sheet'),
+ color: CupertinoColors.activeBlue,
+ padding: const EdgeInsets.symmetric(vertical: 16.0, horizontal: 36.0),
+ onPressed: () {
+ showDemoActionSheet<String>(
+ context: context,
+ child: new CupertinoActionSheet(
+ title: const Text('Favorite Dessert'),
+ message: const Text('Please select the best dessert from the options below.'),
+ actions: <Widget>[
+ new CupertinoActionSheetAction(
+ child: const Text('Profiteroles'),
+ onPressed: () {
+ Navigator.pop(context, 'Profiteroles');
+ },
+ ),
+ new CupertinoActionSheetAction(
+ child: const Text('Cannolis'),
+ onPressed: () {
+ Navigator.pop(context, 'Cannolis');
+ },
+ ),
+ new CupertinoActionSheetAction(
+ child: const Text('Trifle'),
+ onPressed: () {
+ Navigator.pop(context, 'Trifle');
+ },
+ ),
+ ],
+ cancelButton: new CupertinoActionSheetAction(
+ child: const Text('Cancel'),
+ isDefaultAction: true,
+ onPressed: () {
+ Navigator.pop(context, 'Cancel');
+ },
+ )
+ ),
+ );
+ },
+ ),
],
),
);
diff --git a/examples/flutter_gallery/lib/gallery/demos.dart b/examples/flutter_gallery/lib/gallery/demos.dart
index f71545d..3aa5410 100644
--- a/examples/flutter_gallery/lib/gallery/demos.dart
+++ b/examples/flutter_gallery/lib/gallery/demos.dart
@@ -402,11 +402,11 @@
buildRoute: (BuildContext context) => new CupertinoButtonsDemo(),
),
new GalleryDemo(
- title: 'Dialogs',
+ title: 'Alerts',
icon: GalleryIcons.dialogs,
category: _kCupertinoComponents,
- routeName: CupertinoDialogDemo.routeName,
- buildRoute: (BuildContext context) => new CupertinoDialogDemo(),
+ routeName: CupertinoAlertDemo.routeName,
+ buildRoute: (BuildContext context) => new CupertinoAlertDemo(),
),
new GalleryDemo(
title: 'Navigation',