From faffd3aef3035cbe2f205eea4b3f72a5295dd5e8 Mon Sep 17 00:00:00 2001 From: Natalie Sampsell Date: Wed, 15 Aug 2018 01:01:30 -0700 Subject: [PATCH] Add CupertinoActionSheet to gallery (#20411) --- .../lib/demo/cupertino/cupertino.dart | 2 +- ...og_demo.dart => cupertino_alert_demo.dart} | 67 +++++++++++++++++-- .../flutter_gallery/lib/gallery/demos.dart | 6 +- 3 files changed, 66 insertions(+), 9 deletions(-) rename examples/flutter_gallery/lib/demo/cupertino/{cupertino_dialog_demo.dart => cupertino_alert_demo.dart} (72%) diff --git a/examples/flutter_gallery/lib/demo/cupertino/cupertino.dart b/examples/flutter_gallery/lib/demo/cupertino/cupertino.dart index 641c1689943..2b7e62c3618 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 b6001000df4..eca06c30456 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 { +class _CupertinoAlertDemoState extends State { final GlobalKey _scaffoldKey = new GlobalKey(); void showDemoDialog({BuildContext context, Widget child}) { @@ -32,12 +32,27 @@ class _CupertinoDialogDemoState extends State { }); } + void showDemoActionSheet({BuildContext context, Widget child}) { + showCupertinoModalPopup( + context: context, + builder: (BuildContext context) => child, + ).then((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 @@ class _CupertinoDialogDemoState extends State { ); }, ), + 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( + context: context, + child: new CupertinoActionSheet( + title: const Text('Favorite Dessert'), + message: const Text('Please select the best dessert from the options below.'), + actions: [ + 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 f71545d7b7a..3aa54101f6a 100644 --- a/examples/flutter_gallery/lib/gallery/demos.dart +++ b/examples/flutter_gallery/lib/gallery/demos.dart @@ -402,11 +402,11 @@ List _buildGalleryDemos() { 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',