From 65e38199b5ec56d5d6bf5db101c139f500224adb Mon Sep 17 00:00:00 2001 From: "sanfan.hx" Date: Sun, 20 Jan 2019 23:04:56 +0800 Subject: [PATCH] feat(add CupertinoTabBar demo): --- .../components/Bar/SliverAppBar/demo.dart | 2 +- .../Cupertino/CupertinoTabBar/demo.dart | 53 +++++++++++++++++++ .../Cupertino/CupertinoTabBar/index.dart | 44 +++++++++++++++ lib/widgets/themes/Cupertino/index.dart | 6 +++ pubspec.yaml | 1 + 5 files changed, 105 insertions(+), 1 deletion(-) create mode 100644 lib/widgets/themes/Cupertino/CupertinoTabBar/demo.dart create mode 100644 lib/widgets/themes/Cupertino/CupertinoTabBar/index.dart diff --git a/lib/widgets/components/Bar/SliverAppBar/demo.dart b/lib/widgets/components/Bar/SliverAppBar/demo.dart index 3bc2c5fb..705f0dbe 100644 --- a/lib/widgets/components/Bar/SliverAppBar/demo.dart +++ b/lib/widgets/components/Bar/SliverAppBar/demo.dart @@ -48,7 +48,7 @@ class SliverAppBarLessDefault extends StatelessWidget { } return new SizedBox( height: 500.0, - child:NestedScrollView( + child: NestedScrollView( headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) { return [ SliverAppBar( diff --git a/lib/widgets/themes/Cupertino/CupertinoTabBar/demo.dart b/lib/widgets/themes/Cupertino/CupertinoTabBar/demo.dart new file mode 100644 index 00000000..cb232bb6 --- /dev/null +++ b/lib/widgets/themes/Cupertino/CupertinoTabBar/demo.dart @@ -0,0 +1,53 @@ +/** + * 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 CupertinoTabBarDemo extends StatefulWidget { + _Demo createState() => _Demo(); +} + +class _Demo extends State { + int index = 0; + + changeIndex(int _index) { + this.setState(() { + index = _index; + }); + } + Widget build(BuildContext context) { + return Container( + height: 500, + child: Scaffold( + appBar: AppBar(title: const Text('CupertinoTabBarDemo')), + floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked, + body: Center( + child: Text('CupertinoTabBarDemo in bottom'), + ), + bottomNavigationBar: CupertinoTabBar( + backgroundColor: Color.fromRGBO(244, 244, 244, 0.5), + currentIndex: index, + onTap: (i) { + this.changeIndex(i); + }, + items: [ + BottomNavigationBarItem( + title: Text("1"), + icon: Icon(Icons.add), + ), + BottomNavigationBarItem( + title: Text("2"), + icon: Icon(Icons.delete) + )], + ) + ), + ); + } +} \ No newline at end of file diff --git a/lib/widgets/themes/Cupertino/CupertinoTabBar/index.dart b/lib/widgets/themes/Cupertino/CupertinoTabBar/index.dart new file mode 100644 index 00000000..0d61ab78 --- /dev/null +++ b/lib/widgets/themes/Cupertino/CupertinoTabBar/index.dart @@ -0,0 +1,44 @@ +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 = ''' +### **简介** +> ios风格下底部导航组件. + +通过BottomNavigationBarItem列表,在屏幕底部展示多个小组件, 默认下选择第一个小组件; + +### **基本用法** + +这个组件, 没有任何内部状态, 使用时需要开发者自己去监听**onTap**方法, 主动为组件的属性**currentIndex**赋值 + +在官网上有这么一段文字: + +> If the given backgroundColor's opacity is not 1.0 (which is the case by default), it will produce a blurring effect to the content behind it. + +本人试了很多次. 也没有发现这个Blur Effect是怎么触发的, 如果有人了解, 欢迎提PR. +'''; + + +class Demo extends StatefulWidget { + static const String routeName = + '/element/themes/Cupertino/CupertinoTabBar'; + + @override + State createState() => _DemoState(); +} + +class _DemoState extends State { + @override + Widget build(BuildContext context) { + return WidgetDemo( + title: 'CupertinoTabBar', + codeUrl: '/themes/Cupertino/CupertinoTabBar/demo.dart', + docUrl: 'https://docs.flutter.io/flutter/cupertino/CupertinoTabBar-class.html', + contentList: [ + Text0, + CupertinoTabBarDemo() + ], + ); + } +} diff --git a/lib/widgets/themes/Cupertino/index.dart b/lib/widgets/themes/Cupertino/index.dart index 9518af37..484b6836 100644 --- a/lib/widgets/themes/Cupertino/index.dart +++ b/lib/widgets/themes/Cupertino/index.dart @@ -5,6 +5,7 @@ import './CupertinoSlider/index.dart' as CupertinoSlider; import './CupertinoSegmentedControl/index.dart' as CupertinoSegmentedControl; import './CupertinoSliverNavigationBar/index.dart' as CupertinoSliverNavigationBar; import './CupertinoSwitch/index.dart' as CupertinoSwitch; +import './CupertinoTabBar/index.dart' as CupertinoTabBar; List widgetPoints = [ WidgetPoint( name: 'CupertinoScrollbar', @@ -36,4 +37,9 @@ List widgetPoints = [ routerName: CupertinoSwitch.Demo.routeName, buildRouter: (BuildContext context) => CupertinoSwitch.Demo(), ), + WidgetPoint( + name: 'CupertinoTabBar', + routerName: CupertinoTabBar.Demo.routeName, + buildRouter: (BuildContext context) => CupertinoTabBar.Demo(), + ), ]; diff --git a/pubspec.yaml b/pubspec.yaml index 748fe30b..6a173520 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -167,6 +167,7 @@ flutter: - lib/widgets/themes/Cupertino/CupertinoSlider/demo.dart - lib/widgets/themes/Cupertino/CupertinoSegmentedControl/demo.dart - lib/widgets/themes/Cupertino/CupertinoSwitch/demo.dart + - lib/widgets/themes/Cupertino/CupertinoTabBar/demo.dart - assets/app.db - assets/images/ - lib/common/example_code_parser.dart