diff --git a/lib/common/widget_name_to_icon.dart b/lib/common/widget_name_to_icon.dart index 909bf110..8565d35f 100644 --- a/lib/common/widget_name_to_icon.dart +++ b/lib/common/widget_name_to_icon.dart @@ -155,5 +155,14 @@ class WidgetName2Icon { "CupertinoPageScaffold":Icons.pages, "CupertinoPicker":Icons.add_alarm, "CupertinoPopupSurface":Icons.center_focus_weak, + "CupertinoScrollbar": Icons.fullscreen, + "CupertinoSlider": Icons.switch_camera, + "CupertinoSegmentedControl": Icons.radio_button_checked, + "CupertinoSliverNavigationBar": Icons.subtitles, + "CupertinoSwitch": Icons.check_box, + "CupertinoTabBar": Icons.tab, + "CupertinoTabScaffold": Icons.tab, + "CupertinoTabView": Icons.table_chart, + "CupertinoTimerPicker": Icons.timer }; } diff --git a/lib/widgets/themes/Cupertino/CupertinoScrollbar/index.dart b/lib/widgets/themes/Cupertino/CupertinoScrollbar/index.dart index 01a1f60c..cf8c4906 100644 --- a/lib/widgets/themes/Cupertino/CupertinoScrollbar/index.dart +++ b/lib/widgets/themes/Cupertino/CupertinoScrollbar/index.dart @@ -1,6 +1,5 @@ import 'package:flutter/material.dart'; import 'package:flutter_go/common/widget_demo.dart'; -import 'package:flutter_go/widgets/themes/Material/MaterialColor/demo.dart'; import 'demo.dart'; const Text0 = ''' ### **简介** diff --git a/lib/widgets/themes/Cupertino/CupertinoTimerPicker/demo.dart b/lib/widgets/themes/Cupertino/CupertinoTimerPicker/demo.dart new file mode 100644 index 00000000..be683a88 --- /dev/null +++ b/lib/widgets/themes/Cupertino/CupertinoTimerPicker/demo.dart @@ -0,0 +1,61 @@ +/** + * Created with Android Studio. + * User: 三帆 + * Date: 20/01/2019 + * Time: 22:28 + * email: sanfan.hx@alibaba-inc.com + * tartget: CupertinoTabBar + */ + +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; + +class CupertinoTimerPickerDemo extends StatefulWidget { + _Demo createState() => _Demo(); +} + +class _Demo extends State { + int index = 0; + Duration timer = new Duration(minutes: 50); + + Widget _buildBottomPicker(Widget picker) { + return Container( + height: 300, + padding: const EdgeInsets.only(top: 6.0), + color: CupertinoColors.white, + child: DefaultTextStyle( + style: const TextStyle( + color: CupertinoColors.black, + fontSize: 22.0, + ), + child: GestureDetector( + // Blocks taps from propagating to the modal sheet and popping. + onTap: () {}, + child: SafeArea( + top: false, + child: picker, + ), + ), + ), + ); + } + Widget build(BuildContext context) { + return GestureDetector( + onTap: () { + showCupertinoModalPopup( + context: context, + builder: (BuildContext context) { + return _buildBottomPicker(CupertinoTimerPicker( + initialTimerDuration: timer, + minuteInterval: 5, + onTimerDurationChanged: (Duration newTimer) { + setState(() => timer = newTimer); + }, + )); + }, + ); + }, + child: Text("点我弹出"), + ); + } +} \ No newline at end of file diff --git a/lib/widgets/themes/Cupertino/CupertinoTimerPicker/index.dart b/lib/widgets/themes/Cupertino/CupertinoTimerPicker/index.dart new file mode 100644 index 00000000..228bac9a --- /dev/null +++ b/lib/widgets/themes/Cupertino/CupertinoTimerPicker/index.dart @@ -0,0 +1,50 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_go/common/widget_demo.dart'; +import 'package:flutter_go/widgets/themes/Material/MaterialColor/demo.dart'; +import 'demo.dart'; +const Text0 = ''' +### **简介** + +> CupertinoTimerPicker 是一个ios风格下的时间选择组件 + +此选择器显示带有小时、分钟和秒的时间选择器。时间范围为0-23小时, 0-59分钟. 0-59秒. + + +### **基本用法** + + +### **基本实例** + +属性说明: + +- initialTimerDuration 初始化时间点 +- minuteInterval 分钟间隔, 我们设置为5, 则分钟选项为0,5,10,15... +- mode 显示的格式, 我们可以控制该属性, 仅显示小时与分钟, 分钟与秒等, 具体查看 **CupertinoTimerPickerMode** +- onTimerDurationChanged 时间改变后的回调 +- secondInterval 秒数间隔, 与minuteInterval同 + +'''; + + +class Demo extends StatefulWidget { + static const String routeName = + '/element/themes/Cupertino/CupertinoTimerPicker'; + + @override + State createState() => _DemoState(); +} + +class _DemoState extends State { + @override + Widget build(BuildContext context) { + return WidgetDemo( + title: 'CupertinoTimerPicker', + codeUrl: '/themes/Cupertino/CupertinoTimerPicker/demo.dart', + docUrl: 'https://docs.flutter.io/flutter/cupertino/CupertinoTimerPicker-class.html', + contentList: [ + Text0, + CupertinoTimerPickerDemo() + ], + ); + } +} diff --git a/lib/widgets/themes/Cupertino/index.dart b/lib/widgets/themes/Cupertino/index.dart index c773292f..2da137c6 100644 --- a/lib/widgets/themes/Cupertino/index.dart +++ b/lib/widgets/themes/Cupertino/index.dart @@ -21,6 +21,7 @@ import './CupertinoSwitch/index.dart' as CupertinoSwitch; import './CupertinoTabBar/index.dart' as CupertinoTabBar; import './CupertinoTabScaffold/index.dart' as CupertinoTabScaffold; import './CupertinoTabView/index.dart' as CupertinoTabView; +import './CupertinoTimerPicker/index.dart' as CupertinoTimerPicker; List widgetPoints = [ WidgetPoint( @@ -113,5 +114,10 @@ List widgetPoints = [ routerName: CupertinoTabView.Demo.routeName, buildRouter: (BuildContext context) => CupertinoTabView.Demo(), ), + WidgetPoint( + name: 'CupertinoTimerPicker', + routerName: CupertinoTimerPicker.Demo.routeName, + buildRouter: (BuildContext context) => CupertinoTimerPicker.Demo(), + ), ];