diff --git a/android/app/build.gradle b/android/app/build.gradle index 72bde72..d57f007 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -48,6 +48,8 @@ android { targetSdkVersion 30 versionCode flutterVersionCode.toInteger() versionName flutterVersionName + multiDexEnabled true + archivesBaseName = "FlutterUnit.apk" } buildTypes { diff --git a/assets/flutter.db b/assets/flutter.db index 132af61..c9f0ab2 100644 Binary files a/assets/flutter.db and b/assets/flutter.db differ diff --git a/assets/images/pica.gif b/assets/images/pica.gif deleted file mode 100644 index 6d2b050..0000000 Binary files a/assets/images/pica.gif and /dev/null differ diff --git a/lib/app/views/about/about_app_page.dart b/lib/app/views/about/about_app_page.dart index 24f9cdc..c2708f5 100644 --- a/lib/app/views/about/about_app_page.dart +++ b/lib/app/views/about/about_app_page.dart @@ -1,6 +1,6 @@ /// create by 张风捷特烈 on 2020-04-13 /// contact me by email 1981462002@qq.com -/// 说明: +/// 说明: ... import 'package:flutter/material.dart'; import 'package:flutter_unit/app/res/toly_icon.dart'; import 'package:flutter_unit/app/router/router_utils.dart'; @@ -36,8 +36,8 @@ class AboutAppPage extends StatelessWidget { Positioned( bottom: 0, left: 50, - child: GestureDetector( - onTap: (){ + child: FeedbackWidget( + onEnd : (){ Navigator.push(context, Right2LeftRouter(child: const FlutterUnitTimeLine())); }, child: CircleImage( @@ -152,9 +152,9 @@ class AboutAppPage extends StatelessWidget { ), InfoPanel( title: '项目简介', - info: ' Flutter Unit 是一个非盈利性的开源项目,' - '旨在提供全面的Flutter学习指南及编程者的交流技术的接口。' - '由【张风捷特烈】提供技术支持和全权维护。唯一开源网站网址: ' + info: 'Flutter Unit 是一个非盈利性的开源项目,' + '旨在提供全面的 Flutter 学习指南及编程者的交流技术的接口。' + '由【张风捷特烈】提供技术支持和全权维护。唯一开源网站网址:\n ' 'https://github.com/toly1994328/FlutterUnit', ), Divider( @@ -176,10 +176,13 @@ class AboutAppPage extends StatelessWidget { height: 20, ), InfoPanel( - title: 'Flutter Unit 2.0 计划', - info: 'Flutter Unit 2.0 尚在计划之中,如果说1.0是本王单枪匹马,' - '那2.0将是Flutter爱好者的共同努力。后面陆续会发布一些征集方案,' - '包括属性、布局、绘制、bug、要点集录等。吾想让Unit 成为一个Flutter的圣地,纯粹而强大,期待与你的共同携手。', + title: 'Flutter Unit 2.0 ', + info: + '○ 317 的 Flutter 组件收录和详情介绍。\n' + '○ 绘制集录用于收录绘制相关的优秀示例。\n' + '○ 要点集录用于收录 Flutter 相关的小知识。\n' + '○ 时光轴,查看 FlutterUnit 重要事件。\n' + '○ 实现应用内更新功能,方便使用者及时更新到最新版体验。' ) ], ), diff --git a/lib/app/views/about/about_me_page.dart b/lib/app/views/about/about_me_page.dart index c50c789..86f0228 100644 --- a/lib/app/views/about/about_me_page.dart +++ b/lib/app/views/about/about_me_page.dart @@ -1,6 +1,6 @@ /// create by 张风捷特烈 on 2020-04-13 /// contact me by email 1981462002@qq.com -/// 说明: +/// 说明: ... import 'package:flutter/material.dart'; import 'package:flutter_unit/app/res/toly_icon.dart'; import 'package:flutter_unit/components/permanent/circle_image.dart'; diff --git a/lib/app/views/time_line/flutter_unit_time_line.dart b/lib/app/views/time_line/flutter_unit_time_line.dart index f4d9198..f833aeb 100644 --- a/lib/app/views/time_line/flutter_unit_time_line.dart +++ b/lib/app/views/time_line/flutter_unit_time_line.dart @@ -1,5 +1,7 @@ import 'package:dash_painter/dash_painter.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:flutter_unit/app/blocs/global/global_bloc.dart'; import 'package:wrapper/wrapper.dart'; import 'model/time_node.dart'; @@ -24,9 +26,8 @@ class FlutterUnitTimeLine extends StatelessWidget { timeNode: TimeNode( title: 'FlutterUnit 正式开源', year: '2020', - content: 'V1.0 版本: 核心功能是组件集录,此时收录 200+ 组件的基本使用方式。', - imageUrl: - 'https://gitee.com/toly1994/toly_blog_pic/raw/master/node1.webp', + content: 'V1.0 版本: 核心功能是组件集录,此时收录 213 组件的基本使用方式。', + imageUrl: 'https://gitee.com/toly1994/res/raw/master/img3.webp', time: '2020-04-15', ), ), @@ -34,30 +35,125 @@ class FlutterUnitTimeLine extends StatelessWidget { timeNode: TimeNode( title: '收藏夹功能完成', content: '通过收藏夹功能,使用者可以自由创建收藏夹,对组件进行自己的分类。', - imageUrl: - 'https://gitee.com/toly1994/toly_blog_pic/raw/master/node2.webp', time: '2020-04-23', ), ), TimeLineNode( timeNode: TimeNode( title: 'FlutterUnit 支持 MacOS', - content: '通过收藏夹功能,使用者可以自由创建收藏夹,对组件进行自己的分类。', + content: '优化相关界面布局,在新分支中支持 MacOS 系统运行 FlutterUnit 程序。', imageUrl: 'https://gitee.com/toly1994/toly_blog_pic/raw/master/node4.webp', time: '2020-05-05', ), ), + TimeLineNode( + timeNode: TimeNode( + title: 'FlutterUnit 支持 Windows', + content: '优化相关界面布局,在新分支中支持 Windows 系统运行 FlutterUnit 程序。', + time: '2020-07-09', + ), + ), + TimeLineNode( + timeNode: TimeNode( + title: 'FlutterUnit 支持 web', + content: '优化相关界面布局,在新分支中支持 Windows 系统运行 FlutterUnit 程序。', + time: '2020-08-12', + ), + ), TimeLineNode( timeNode: TimeNode( title: ' Flutter 要点集录', + imageUrl: 'https://gitee.com/toly1994/res/raw/master/img2.webp', content: - '要点集录会收集 FlutterUnit 中 point 标签的 issues,在应用中进行展示,从而达到对要点知识的收集', - imageUrl: - 'https://gitee.com/toly1994/toly_blog_pic/raw/master/node3.webp', + '要点集录会收集 FlutterUnit 中 point 标签的 issues,在应用中进行展示,从而达到对要点知识的收集。', time: '2020-09-04', ), ), + TimeLineNode( + timeNode: TimeNode( + title: '组件集录收集数', + content: + '收录组件数量从最初的 213 个增加到 306 个,已经涵盖了绝大多数 Flutter 框架中的原生组件。', + time: '2020-12-22', + ), + ), + TimeLineNode( + timeNode: TimeNode( + title: '个人页面的加入', + content: '相比于侧滑菜单,通过个人页面,更方便进行一些应用的设置操作。', + time: '2020-12-22', + ), + ), + TimeLineNode( + timeNode: TimeNode( + year: '2021', + title: '绘制集录正式加入', + imageUrl: + 'https://gitee.com/toly1994/res/raw/master/%E7%BB%98%E5%88%B6%E9%9B%86%E5%BD%95%E7%9A%84%E5%89%AF%E6%9C%AC.webp', + content: + '绘制集录目的在于收录一些有意思的绘制案例,帮助对绘制感兴趣的朋友更好地学习,另一方面也可以反映出 Flutter 在绘制方面的强大能力。', + time: '2021-01-22', + ), + ), + TimeLineNode( + timeNode: TimeNode( + title: '后端服务计划启动', + content: + '基于 SpringBoot 框架实现 Flutter Unit Server,打算实现用户系统,支持组件收藏的用户化及同步操作,以及应用中组件数据的线上化。(封测中)', + time: '2021-03-28', + ), + ), + TimeLineNode( + timeNode: TimeNode( + title: '用户登录测试', + content: '后端完成基本的用户系统,基于邮箱校验,前端完成用户注册、登录等界面及交互逻辑。(封测中)', + time: '2021-05-01', + ), + ), + TimeLineNode( + timeNode: TimeNode( + title: '全面支持空安全', + imageUrl: + 'https://gitee.com/toly1994/res/raw/master/nullsafe.webp', + content: '由于 FlutterUnit 中存在大量的组件示例,支持空安全是一个非常大的挑战。', + time: '2021-08-29', + ), + ), + TimeLineNode( + timeNode: TimeNode( + title: '绘制集录持续收集', + content: + '根据绘制、手势、动画等小册中的案例,进行收录到 FlutterUnit 绘制集录中,桌面版本也同步更新中。', + time: '2020-10-01', + ), + ), + TimeLineNode( + timeNode: TimeNode( + title: '实现应用内升级', + imageUrl: 'https://gitee.com/toly1994/res/raw/master/img.webp', + content: '服务端完成应用版本检测接口,应用内升级的实现,方便大家更新版本,及时体验最新版功能。', + time: '2021-12-18', + ), + ), + TimeLineNode( + timeNode: TimeNode( + title: '项目及案例全面优化', + year: '2022', + imageUrl: 'https://gitee.com/toly1994/res/raw/master/img4.webp', + content: + '由于代码案例代码比较老旧,为了给新手朋友一个规范的示例。针对 Dart Analysis 中代码的规范性问题进行优化。由于案例数量太多,这又是一个非常巨大的挑战。', + time: '2021-03-26', + ), + ), + TimeLineNode( + timeNode: TimeNode( + title: 'FlutterUnit 2.0 发布', + content: '鉴于案例的优化完成、[绘制/组件]集录的收集情况、以及应用内更新的支持,FlutterUnit 正式进入 2.0 版本。', + imageUrl: 'https://gitee.com/toly1994/res/raw/master/img3.webp', + time: '2022-03-28', + ), + ), ], ), ), @@ -78,48 +174,44 @@ class TimeLineNode extends StatelessWidget { @override Widget build(BuildContext context) { + Color themeColor = BlocProvider.of(context).state.themeColor; + return IntrinsicHeight( child: Row( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Padding( - padding: const EdgeInsets.only(top: 20 + 5, left: 10), - child: timeNode.year != null - ? Text( - '${timeNode.year} 年', - style: const TextStyle( - color: Colors.white, fontWeight: FontWeight.bold), - ) - : const Visibility( - visible: false, - maintainState: true, - maintainSize: true, - maintainAnimation: true, - child: Text( - '2020 年', - style: TextStyle( + SizedBox( + width: 65, + child: Padding( + padding: const EdgeInsets.only(top: 20 + 5, left: 10), + child: timeNode.year != null + ? Text( + '${timeNode.year} 年', + style: const TextStyle( color: Colors.white, fontWeight: FontWeight.bold), - ))), - _buildDecoration(), - Expanded(flex: 8, child: _buildCenterWidget()), + ) + : const SizedBox.shrink()), + ), + _buildDecoration(themeColor), + Expanded(flex: 8, child: _buildCenterWidget(themeColor)), const Spacer(flex: 1) ], ), ); } - Widget _buildDecoration() => Container( + Widget _buildDecoration(Color themeColor) => Container( margin: const EdgeInsets.only(left: 10), width: dashLineWith, decoration: DashDecoration( - circleColor: Colors.blueAccent, + circleColor: themeColor, lineColor: Colors.white, circleRadius: circleRadius, color: Colors.white, circleOffset: Offset(lineWidth / 2, offset + 10 / 2)), ); - Widget _buildCenterWidget() { + Widget _buildCenterWidget(Color themeColor) { return Padding( padding: const EdgeInsets.only(top: 10), child: Wrapper( @@ -130,15 +222,14 @@ class TimeLineNode extends StatelessWidget { children: [ Text( timeNode.title, - style: const TextStyle( - fontWeight: FontWeight.bold, color: Colors.purple), + style: TextStyle(fontWeight: FontWeight.bold, color: themeColor), ), Container( margin: const EdgeInsets.symmetric(vertical: 5), child: Text( timeNode.content, style: const TextStyle( - color: Colors.lightBlue, + color: Colors.grey, fontSize: 12, shadows: [ Shadow(color: Colors.blueAccent, blurRadius: .1) @@ -160,8 +251,8 @@ class TimeLineNode extends StatelessWidget { Align( alignment: Alignment.centerRight, child: Text(timeNode.time, - style: const TextStyle( - color: Colors.grey, + style: TextStyle( + color: themeColor, fontSize: 14, fontWeight: FontWeight.bold)), ) diff --git a/lib/painter_system/gallery_factory.dart b/lib/painter_system/gallery_factory.dart index 78959cf..ef65a83 100644 --- a/lib/painter_system/gallery_factory.dart +++ b/lib/painter_system/gallery_factory.dart @@ -96,7 +96,7 @@ class GalleryFactory { info: "本样例介绍如何绘制弹簧,通过触点竖直拖拽拉伸、压缩,放手时进行恢复动画,是一个很好的综合小案例。\n特殊操作:上下拖拽伸缩弹簧", content: SpringWidget()), FrameShower( - title: "绕道点旋转", + title: "绕定点旋转", author: "张风捷特烈", srcUrl: '/anim/rotate_by_point', info: "本样例介绍如何根据以某个点为中心,进行旋转运动。以此学习两点间的角度在绘制中的应用。\n特殊操作:点击运行", diff --git a/lib/painter_system/gallery_unit.dart b/lib/painter_system/gallery_unit.dart index 800eacf..65e9d78 100644 --- a/lib/painter_system/gallery_unit.dart +++ b/lib/painter_system/gallery_unit.dart @@ -3,7 +3,6 @@ import 'dart:convert'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_unit/app/blocs/color_change_bloc.dart'; -import 'package:flutter_unit/app/res/str_unit.dart'; import 'package:flutter_unit/components/permanent/feedback_widget.dart'; import 'package:flutter_unit/components/project/default/loading_shower.dart'; import 'package:flutter_unit/components/project/items/gallery/gallery_card_item.dart'; diff --git a/lib/widget_system/widgets/Sliver/FlexibleSpaceBar/node1_base.dart b/lib/widget_system/widgets/Sliver/FlexibleSpaceBar/node1_base.dart index 7522ca8..dbfdec8 100644 --- a/lib/widget_system/widgets/Sliver/FlexibleSpaceBar/node1_base.dart +++ b/lib/widget_system/widgets/Sliver/FlexibleSpaceBar/node1_base.dart @@ -1,8 +1,7 @@ -/// create by 张风捷特烈 on 2020-03-31 -/// contact me by email 1981462002@qq.com -/// 说明: import 'package:flutter/material.dart'; +/// create by 张风捷特烈 on 2020-03-31 +/// contact me by email 1981462002@qq.com /// 说明: // { // "widgetId": 196, @@ -16,6 +15,7 @@ import 'package:flutter/material.dart'; // "【background】 : 背景组件 【Widget】\n" // "【centerTitle】 : 是否居中 【bool】", // } + class FlexibleSpaceBarDemo extends StatelessWidget { FlexibleSpaceBarDemo({Key? key}) : super(key: key); diff --git a/lib/widget_system/widgets/StatefulWidget/Image/node1_base.dart b/lib/widget_system/widgets/StatefulWidget/Image/node1_base.dart index 400aee2..c3aceff 100644 --- a/lib/widget_system/widgets/StatefulWidget/Image/node1_base.dart +++ b/lib/widget_system/widgets/StatefulWidget/Image/node1_base.dart @@ -20,7 +20,6 @@ class LoadImage extends StatelessWidget { const LoadImage({Key? key}) : super(key: key); final String assetsImagePath = "assets/images/icon_head.webp"; - final String assetsGif = "assets/images/pica.gif"; final String netImageUrl = "https://p9-juejin.byteimg.com" "/tos-cn-i-k3u1fbpfcp/36dee4e4dceb4c41a93df4a3603439fe~" "tplv-k3u1fbpfcp-zoom-crop-mark:1304:1304:1304:734.awebp"; @@ -30,19 +29,11 @@ class LoadImage extends StatelessWidget { return Wrap( spacing: 10, children: [ - _loadFromAssets(), + Image.asset(assetsImagePath, height: 80, width: 80), _loadFromNet(), ], ); } - Widget _loadFromAssets() => Wrap( - spacing: 10, - children: [ - Image.asset(assetsImagePath, height: 80, width: 80), - Image.asset(assetsGif, height: 80, width: 80), - ], - ); - Widget _loadFromNet() => Image.network(netImageUrl, height: 80); } diff --git a/lib/widget_system/widgets/StatefulWidget/Scrollable/node1_base.dart b/lib/widget_system/widgets/StatefulWidget/Scrollable/node1_base.dart index e0307c5..dd95e0c 100644 --- a/lib/widget_system/widgets/StatefulWidget/Scrollable/node1_base.dart +++ b/lib/widget_system/widgets/StatefulWidget/Scrollable/node1_base.dart @@ -14,8 +14,7 @@ import 'package:flutter/rendering.dart'; // "【axisDirection】: 滑动方向 【AxisDirection】\n" // "【controller】: 滑动控制器 【ScrollController】\n" // "【dragStartBehavior】: t拖动行为 【DragStartBehavior】\n" -// "【physics】: 滚动现象 【ScrollPhysics】\n" -// "【color】: 子组件 【Color】", +// "【physics】: 滚动现象 【ScrollPhysics】\n", // } class ScrollableDemo extends StatelessWidget { diff --git a/lib/widget_system/widgets/StatefulWidget/Switch/node2_image.dart b/lib/widget_system/widgets/StatefulWidget/Switch/node2_image.dart index f7f9d79..ce5d722 100644 --- a/lib/widget_system/widgets/StatefulWidget/Switch/node2_image.dart +++ b/lib/widget_system/widgets/StatefulWidget/Switch/node2_image.dart @@ -10,7 +10,7 @@ import 'package:flutter/material.dart'; // "priority": 2, // "subtitle": // "【inactiveThumbImage】 : 未选中小圈图片 【ImageProvider】\n" -// "【activeThumbImage】 : 选中时滑槽颜色 【ImageProvider】", +// "【activeThumbImage】 : 选中小圈图片 【ImageProvider】", // } class ImageSwitch extends StatefulWidget { const ImageSwitch({Key? key}) : super(key: key); @@ -37,7 +37,7 @@ class _ImageSwitchState extends State { Switch( value: _checked, inactiveThumbImage: AssetImage(e), - activeThumbImage: const AssetImage('assets/images/pica.gif'), + activeThumbImage: const AssetImage('assets/images/icon_head.webp'), onChanged: (v) { setState(() => _checked = v); })) diff --git a/lib/widget_system/widgets/StatelessWidget/AboutDialog/node1_base.dart b/lib/widget_system/widgets/StatelessWidget/AboutDialog/node1_base.dart index 8f0504a..bca3c6a 100644 --- a/lib/widget_system/widgets/StatelessWidget/AboutDialog/node1_base.dart +++ b/lib/widget_system/widgets/StatelessWidget/AboutDialog/node1_base.dart @@ -1,9 +1,19 @@ +import 'package:flutter/material.dart'; + /// create by 张风捷特烈 on 2020/4/25 /// contact me by email 1981462002@qq.com /// 说明: - -/// -import 'package:flutter/material.dart'; +// { +// "widgetId": 130, +// "name": 'AboutDialog基本使用', +// "priority": 1, +// "subtitle": +// "【applicationIcon】 : 左上图标 【Widget】\n" +// "【applicationVersion】 : 版本号 【String】\n" +// "【applicationName】 : 应用名 【String】\n" +// "【applicationLegalese】 : 应用律术 【String】\n" +// "【children】 : 子组件列表 【List】", +// } class CustomAboutDialog extends StatelessWidget { const CustomAboutDialog({Key? key}) : super(key: key); diff --git a/lib/widget_system/widgets/StatelessWidget/AlertDialog/node1_base.dart b/lib/widget_system/widgets/StatelessWidget/AlertDialog/node1_base.dart index 9c6edca..0142fe7 100644 --- a/lib/widget_system/widgets/StatelessWidget/AlertDialog/node1_base.dart +++ b/lib/widget_system/widgets/StatelessWidget/AlertDialog/node1_base.dart @@ -16,9 +16,9 @@ // "【titlePadding】 : 顶部内边距 【EdgeInsetsGeometry】\n" // "【contentPadding】 : 内容内边距 【EdgeInsetsGeometry】\n" // "【actions】 : 右下角组件列表 【List】\n" -// "【backgroundColor】 : 右下角组件列表 【背景色】\n" -// "【elevation】 : 右下角组件列表 【背景色】\n" -// "【shape】 : 影深 【double】", +// "【backgroundColor】 : 背景色 【Color】\n" +// "【elevation】 : 影深 【double】\n" +// "【shape】 : 形状 【ShapeBorder】", // } import 'package:flutter/material.dart'; diff --git a/lib/widget_system/widgets/StatelessWidget/AnimatedIcon/node1_base.dart b/lib/widget_system/widgets/StatelessWidget/AnimatedIcon/node1_base.dart index 4a54775..3621c67 100644 --- a/lib/widget_system/widgets/StatelessWidget/AnimatedIcon/node1_base.dart +++ b/lib/widget_system/widgets/StatelessWidget/AnimatedIcon/node1_base.dart @@ -1,8 +1,18 @@ +import 'package:flutter/material.dart'; + /// create by 张风捷特烈 on 2020/4/25 /// contact me by email 1981462002@qq.com /// 说明: -import 'package:flutter/material.dart'; - +// { +// "widgetId": 125, +// "name": 'AnimatedIcon基本使用', +// "priority": 1, +// "subtitle": +// "【icon】 : 动画图标数据 【AnimatedIcons】\n" +// "【size】 : 大小 【double】\n" +// "【color】 : 颜色 【Color】\n" +// "【progress】 : 动画 【Animation】", +// } class CustomAnimatedIcon extends StatefulWidget { const CustomAnimatedIcon({Key? key}) : super(key: key); diff --git a/lib/widget_system/widgets/StatelessWidget/BackButton/node1_base.dart b/lib/widget_system/widgets/StatelessWidget/BackButton/node1_base.dart index faa00a3..f6a1aaa 100755 --- a/lib/widget_system/widgets/StatelessWidget/BackButton/node1_base.dart +++ b/lib/widget_system/widgets/StatelessWidget/BackButton/node1_base.dart @@ -1,8 +1,16 @@ +import 'package:flutter/material.dart'; + /// create by 张风捷特烈 on 2020/4/25 /// contact me by email 1981462002@qq.com /// 说明: -import 'package:flutter/material.dart'; - +// { +// "widgetId": 31, +// "priority": 1, +// "name": "BackButton属性", +// "subtitle": "【color】: 颜色 【Color】\n" +// "【onPressed】: 点击事件 【Function】\n" +// " onPressed为空会退出当前栈", +// } class CustomBackButton extends StatelessWidget { CustomBackButton({Key? key}) : super(key: key); diff --git a/lib/widget_system/widgets/StatelessWidget/Banner/node1_base.dart b/lib/widget_system/widgets/StatelessWidget/Banner/node1_base.dart index 7696317..22a1938 100644 --- a/lib/widget_system/widgets/StatelessWidget/Banner/node1_base.dart +++ b/lib/widget_system/widgets/StatelessWidget/Banner/node1_base.dart @@ -1,7 +1,18 @@ +import 'package:flutter/material.dart'; + /// create by 张风捷特烈 on 2020/4/30 /// contact me by email 1981462002@qq.com /// 说明: -import 'package:flutter/material.dart'; +// { +// "widgetId": 5, +// "priority": 1, +// "name": "用于显示一个角标", +// "subtitle": "【message】 : 显示的文字信息 【String】\n" +// "【location】 : 位置*4 【BannerLocation】\n" +// "【color】: 角标颜色 【Color】\n" +// "【child】: 孩子 【Widget】\n" +// "【textStyle】: 文字样式 【TextStyle】", +// } class CustomBanner extends StatelessWidget { CustomBanner({Key? key}) : super(key: key); diff --git a/lib/widget_system/widgets/StatelessWidget/BottomSheet/node1_base.dart b/lib/widget_system/widgets/StatelessWidget/BottomSheet/node1_base.dart index 337cad1..9b94ae9 100644 --- a/lib/widget_system/widgets/StatelessWidget/BottomSheet/node1_base.dart +++ b/lib/widget_system/widgets/StatelessWidget/BottomSheet/node1_base.dart @@ -1,8 +1,18 @@ - - /// create by 张风捷特烈 on 2020-03-25 /// contact me by email 1981462002@qq.com /// 说明: +// { +// "widgetId": 142, +// "name": 'BottomSheet基本使用', +// "priority": 1, +// "subtitle": +// "【builder】 : 组件构造器 【WidgetBuilder】\n" +// "【backgroundColor】 : 背景色 【Color】\n" +// "【elevation】 : 影深 【double】\n" +// "【shape】 : 形状 【ShapeBorder】\n" +// "【onClosing】 : 关闭回调 【Function()】", +// } + import 'package:flutter/material.dart'; class CustomBottomSheet extends StatefulWidget { diff --git a/lib/widget_system/widgets/StatelessWidget/Container/node6_constraints.dart b/lib/widget_system/widgets/StatelessWidget/Container/node6_constraints.dart index 56b11a4..b920277 100644 --- a/lib/widget_system/widgets/StatelessWidget/Container/node6_constraints.dart +++ b/lib/widget_system/widgets/StatelessWidget/Container/node6_constraints.dart @@ -1,6 +1,14 @@ /// create by 张风捷特烈 on 2020/4/25 /// contact me by email 1981462002@qq.com /// 说明: +// { +// "widgetId": 1, +// "name": 'Container的约束性', +// "priority": 6, +// "subtitle": +// "【constraints】 : 约束 【BoxConstraints】\n " +// "会约束该区域的尺寸,不会小于指定的最小宽高,也不会大于指定的最大宽高。", +// } import 'package:flutter/material.dart'; class ContainerConstraints extends StatelessWidget { diff --git a/lib/widget_system/widgets/StatelessWidget/CupertinoTheme/node1_base.dart b/lib/widget_system/widgets/StatelessWidget/CupertinoTheme/node1_base.dart index 55d48b6..b133498 100644 --- a/lib/widget_system/widgets/StatelessWidget/CupertinoTheme/node1_base.dart +++ b/lib/widget_system/widgets/StatelessWidget/CupertinoTheme/node1_base.dart @@ -1,11 +1,15 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; /// create by 张风捷特烈 on 2020-03-29 /// contact me by email 1981462002@qq.com /// 说明: -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; - - +// { +// "widgetId": 169, +// "name": '文字样式-TextTheme', +// "priority": 1, +// "subtitle": "后代组件可以通过CupertinoTheme.of获取主题的数据进行使用。", +// } class TextCupertinoTheme extends StatelessWidget { const TextCupertinoTheme({Key? key}) : super(key: key); diff --git a/lib/widget_system/widgets/StatelessWidget/CupertinoTheme/node2_use.dart b/lib/widget_system/widgets/StatelessWidget/CupertinoTheme/node2_use.dart index 77fe711..2a336d2 100644 --- a/lib/widget_system/widgets/StatelessWidget/CupertinoTheme/node2_use.dart +++ b/lib/widget_system/widgets/StatelessWidget/CupertinoTheme/node2_use.dart @@ -1,10 +1,16 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; /// create by 张风捷特烈 on 2020-03-29 /// contact me by email 1981462002@qq.com /// 说明: -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; - +// { +// "widgetId": 169, +// "name": 'CupertinoThemeData的使用', +// "priority": 2, +// "subtitle": +// "和Theme一样可以通过指定的属性,让它们在后代中共享,不过属性较少。注意如果需要使用主题,不能在当前的context中获取。", +// } class CustomCupertinoTheme extends StatelessWidget { const CustomCupertinoTheme({Key? key}) : super(key: key); diff --git a/lib/widget_system/widgets/StatelessWidget/DataTable/node1_base.dart b/lib/widget_system/widgets/StatelessWidget/DataTable/node1_base.dart index 0095603..24f11f7 100644 --- a/lib/widget_system/widgets/StatelessWidget/DataTable/node1_base.dart +++ b/lib/widget_system/widgets/StatelessWidget/DataTable/node1_base.dart @@ -1,9 +1,16 @@ - +import 'package:flutter/material.dart'; /// create by 张风捷特烈 on 2020-03-21 /// contact me by email 1981462002@qq.com /// 说明: -import 'package:flutter/material.dart'; +// { +// "widgetId": 102, +// "name": 'DataTable基本使用', +// "priority": 1, +// "subtitle": +// "【columns】 : 列 【List】\n" +// "【rows】 : 行 【List】", +// } class _Bean { final int id; diff --git a/lib/widget_system/widgets/StatelessWidget/Divider/node1_base.dart b/lib/widget_system/widgets/StatelessWidget/Divider/node1_base.dart index ade85e0..952f021 100644 --- a/lib/widget_system/widgets/StatelessWidget/Divider/node1_base.dart +++ b/lib/widget_system/widgets/StatelessWidget/Divider/node1_base.dart @@ -1,3 +1,4 @@ +import 'package:flutter/material.dart'; /// create by 张风捷特烈 on 2020-03-24 /// contact me by email 1981462002@qq.com @@ -11,8 +12,6 @@ // "【thickness】: 线粗细 【double】", // } -import 'package:flutter/material.dart'; - class CustomDivider extends StatelessWidget { const CustomDivider({Key? key}) : super(key: key); diff --git a/lib/widget_system/widgets/StatelessWidget/Divider/node2_height.dart b/lib/widget_system/widgets/StatelessWidget/Divider/node2_height.dart index 4700889..1064d09 100644 --- a/lib/widget_system/widgets/StatelessWidget/Divider/node2_height.dart +++ b/lib/widget_system/widgets/StatelessWidget/Divider/node2_height.dart @@ -1,9 +1,16 @@ +import 'package:flutter/material.dart'; /// create by 张风捷特烈 on 2020-03-24 /// contact me by email 1981462002@qq.com /// 说明: -/// -import 'package:flutter/material.dart'; +// { +// "widgetId": 34, +// "priority": 2, +// "name": "Divider高度和空缺", +// "subtitle": "【indent】: 前面空缺长度 【double】\n" +// "【endIndent】: 后面空缺长度 【double】\n" +// "【height】: 占位高 【double】", +// } class HeightDivider extends StatelessWidget { diff --git a/lib/widget_system/widgets/StatelessWidget/Drawer/node1_base.dart b/lib/widget_system/widgets/StatelessWidget/Drawer/node1_base.dart index db6d0f4..b57bc0d 100644 --- a/lib/widget_system/widgets/StatelessWidget/Drawer/node1_base.dart +++ b/lib/widget_system/widgets/StatelessWidget/Drawer/node1_base.dart @@ -2,6 +2,14 @@ /// create by 张风捷特烈 on 2020-03-26 /// contact me by email 1981462002@qq.com /// 说明: +// { +// "widgetId": 154, +// "name": 'Drawer基本使用', +// "priority": 1, +// "subtitle": +// "【child】 : 子组件 【Widget】\n" +// "【elevation】 : 影深 【double】", +// } import 'package:flutter/material.dart'; class CustomDrawer extends StatelessWidget { diff --git a/lib/widget_system/widgets/StatelessWidget/FilterChip/node1_base.dart b/lib/widget_system/widgets/StatelessWidget/FilterChip/node1_base.dart index a0896d2..f4db385 100644 --- a/lib/widget_system/widgets/StatelessWidget/FilterChip/node1_base.dart +++ b/lib/widget_system/widgets/StatelessWidget/FilterChip/node1_base.dart @@ -1,6 +1,15 @@ /// create by 张风捷特烈 on 2020-03-26 /// contact me by email 1981462002@qq.com /// 说明: +// { +// "widgetId": 15, +// "priority": 1, +// "name": "FilterChip可接受选择事件", +// "subtitle": "【selected】: 是否选择 【bool】\n" +// "【onSelected】: 选择事件 【Function(bool)】\n" +// "【selectedColor】: 选择后的颜色 【Color】\n" +// "【selectedShadowColor】: 选择后的阴影颜色 【Color】\n", +// } import 'package:flutter/material.dart'; class CustomFilterChip extends StatefulWidget { diff --git a/lib/widget_system/widgets/StatelessWidget/FlutterLogo/node2_style.dart b/lib/widget_system/widgets/StatelessWidget/FlutterLogo/node2_style.dart index 9f5bcb5..3e9f419 100644 --- a/lib/widget_system/widgets/StatelessWidget/FlutterLogo/node2_style.dart +++ b/lib/widget_system/widgets/StatelessWidget/FlutterLogo/node2_style.dart @@ -1,8 +1,15 @@ +import 'package:flutter/material.dart'; /// create by 张风捷特烈 on 2020-03-26 /// contact me by email 1981462002@qq.com /// 说明: -import 'package:flutter/material.dart'; +// { +// "widgetId": 4, +// "priority": 2, +// "name": "样式用于显示文字", +// "subtitle": "【style】 : 样式-3种枚举 【FlutterLogoStyle】\n" +// "【textColor】: 文字颜色 【Color】", +// } class FlutterLogoWithText extends StatelessWidget { const FlutterLogoWithText({Key? key}) : super(key: key); diff --git a/lib/widget_system/widgets/StatelessWidget/GridPaper/node1_base.dart b/lib/widget_system/widgets/StatelessWidget/GridPager/node1_base.dart similarity index 95% rename from lib/widget_system/widgets/StatelessWidget/GridPaper/node1_base.dart rename to lib/widget_system/widgets/StatelessWidget/GridPager/node1_base.dart index e96331d..1295519 100644 --- a/lib/widget_system/widgets/StatelessWidget/GridPaper/node1_base.dart +++ b/lib/widget_system/widgets/StatelessWidget/GridPager/node1_base.dart @@ -7,7 +7,7 @@ import 'package:flutter/material.dart'; // { // "widgetId": 37, // "priority": 1, -// "name": "GridPage基础属性", +// "name": "GridPager 基础属性", // "subtitle": "【child】: 子组件 【Widget】\n" // "【color】: 颜色 【Color】\n" // "【interval】: 小块边长 【double】", diff --git a/lib/widget_system/widgets/StatelessWidget/GridPaper/node2_divisions.dart b/lib/widget_system/widgets/StatelessWidget/GridPager/node2_divisions.dart similarity index 96% rename from lib/widget_system/widgets/StatelessWidget/GridPaper/node2_divisions.dart rename to lib/widget_system/widgets/StatelessWidget/GridPager/node2_divisions.dart index c1cf824..82d4ead 100644 --- a/lib/widget_system/widgets/StatelessWidget/GridPaper/node2_divisions.dart +++ b/lib/widget_system/widgets/StatelessWidget/GridPager/node2_divisions.dart @@ -6,7 +6,7 @@ import 'package:flutter/material.dart'; // { // "widgetId": 37, // "priority": 2, -// "name": "GridPage再分割", +// "name": "GridPager 再分割", // "subtitle": "【child】: 子组件 【Widget】\n" // "【color】: 颜色 【Color】\n" // "【subdivisions】: 小块中子块个数 【int】\n" diff --git a/lib/widget_system/widgets/StatelessWidget/GridTileBar/node1_base.dart b/lib/widget_system/widgets/StatelessWidget/GridTileBar/node1_base.dart index e04a868..62c394d 100644 --- a/lib/widget_system/widgets/StatelessWidget/GridTileBar/node1_base.dart +++ b/lib/widget_system/widgets/StatelessWidget/GridTileBar/node1_base.dart @@ -8,8 +8,7 @@ import 'package:flutter/material.dart'; // "widgetId": 20, // "priority": 1, // "name": "GridTileBar的基本表现如下", -// "subtitle": "【value】 : 条目对象 【T】\n" -// "【leading】: 左侧组件 【Widget】\n" +// "subtitle": "【leading】: 左侧组件 【Widget】\n" // "【trailing】: 尾组件 【Widget】\n" // "【title】: 中间上组件 【Widget】\n" // "【subtitle】: 中间下组件 【Widget】\n" diff --git a/lib/widget_system/widgets/StatelessWidget/IconButton/node1_base.dart b/lib/widget_system/widgets/StatelessWidget/IconButton/node1_base.dart index c69c775..12bdf2e 100755 --- a/lib/widget_system/widgets/StatelessWidget/IconButton/node1_base.dart +++ b/lib/widget_system/widgets/StatelessWidget/IconButton/node1_base.dart @@ -6,8 +6,7 @@ import 'package:flutter/material.dart'; // "widgetId": 30, // "priority": 1, // "name": "IconButton属性", -// "subtitle": "【child】: 子组件 【Widget】\n" -// "【icon】: 内边距 【Widget】\n" +// "subtitle": "【icon】: 图标组件 【Widget】\n" // "【tooltip】: 长按提示文字 【String】\n" // "【highlightColor】: 长按高亮色 【Color】\n" // "【splashColor】: 水波纹色 【Color】\n" diff --git a/lib/widget_system/widgets/StatelessWidget/SimpleDialog/node1_base.dart b/lib/widget_system/widgets/StatelessWidget/SimpleDialog/node1_base.dart index 17ae179..890baa0 100644 --- a/lib/widget_system/widgets/StatelessWidget/SimpleDialog/node1_base.dart +++ b/lib/widget_system/widgets/StatelessWidget/SimpleDialog/node1_base.dart @@ -13,9 +13,9 @@ import 'package:flutter/material.dart'; // "【children】 : 子组件列表 【List】\n" // "【titlePadding】 : 顶部内边距 【EdgeInsetsGeometry】\n" // "【contentPadding】 : 内容内边距 【EdgeInsetsGeometry】\n" -// "【backgroundColor】 : 右下角组件列表 【背景色】\n" -// "【elevation】 : 右下角组件列表 【背景色】\n" -// "【shape】 : 影深 【double】", +// "【backgroundColor】 : 背景色 【Color】\n" +// "【elevation】 : 影深 【double】\n" +// "【shape】 : 形状 【ShapeBorder】", // } class CustomSimpleDialog extends StatelessWidget { const CustomSimpleDialog({Key? key}) : super(key: key); diff --git a/lib/widget_system/widgets/StatelessWidget/SwitchListTile/node2_select.dart b/lib/widget_system/widgets/StatelessWidget/SwitchListTile/node2_select.dart index 577636b..8b9743e 100644 --- a/lib/widget_system/widgets/StatelessWidget/SwitchListTile/node2_select.dart +++ b/lib/widget_system/widgets/StatelessWidget/SwitchListTile/node2_select.dart @@ -32,7 +32,7 @@ class _SelectSwitchListTileState extends State { selected: _value, activeColor: Colors.orangeAccent, secondary: Image.asset("assets/images/icon_head.webp"), - inactiveThumbImage: const AssetImage("assets/images/pica.gif"), + inactiveThumbImage: const AssetImage("assets/images/head_icon/icon_5.webp"), activeThumbImage: const AssetImage("assets/images/icon_head.webp"), title: const Text("张风捷特烈"), subtitle: const Text("@万花过尽知无物"), diff --git a/lib/widget_system/widgets/StatelessWidget/VerticalDivider/node2_height.dart b/lib/widget_system/widgets/StatelessWidget/VerticalDivider/node2_height.dart index 0a93eae..9943c97 100644 --- a/lib/widget_system/widgets/StatelessWidget/VerticalDivider/node2_height.dart +++ b/lib/widget_system/widgets/StatelessWidget/VerticalDivider/node2_height.dart @@ -12,10 +12,10 @@ import 'package:flutter/material.dart'; // "name": "VerticalDivider宽度和空缺", // "subtitle": "【indent】: 前面空缺长度 【double】\n" // "【endIndent】: 后面空缺长度 【double】\n" -// "【height】: 占位高 【double】", +// "【width】: 占位宽 【double】", // } -class HeightVerticalDivider extends StatelessWidget { - const HeightVerticalDivider({Key? key}) : super(key: key); +class WidthVerticalDivider extends StatelessWidget { + const WidthVerticalDivider({Key? key}) : super(key: key); @override Widget build(BuildContext context) { diff --git a/lib/widget_system/widgets/exp/stateless_unit.dart b/lib/widget_system/widgets/exp/stateless_unit.dart index c5e4f0a..aae8a15 100644 --- a/lib/widget_system/widgets/exp/stateless_unit.dart +++ b/lib/widget_system/widgets/exp/stateless_unit.dart @@ -147,8 +147,8 @@ export '../StatelessWidget/GirdView/node2_direction.dart'; export '../StatelessWidget/GirdView/node3_extend.dart'; export '../StatelessWidget/GirdView/node4_builder.dart'; -export '../StatelessWidget/GridPaper/node1_base.dart'; -export '../StatelessWidget/GridPaper/node2_divisions.dart'; +export '../StatelessWidget/GridPager/node1_base.dart'; +export '../StatelessWidget/GridPager/node2_divisions.dart'; export '../StatelessWidget/Spacer/node1_base.dart'; export '../StatelessWidget/Spacer/node2_flex.dart'; diff --git a/lib/widget_system/widgets/widgets_map.dart b/lib/widget_system/widgets/widgets_map.dart index d00dceb..9383a57 100644 --- a/lib/widget_system/widgets/widgets_map.dart +++ b/lib/widget_system/widgets/widgets_map.dart @@ -515,7 +515,7 @@ class WidgetsMap { case "VerticalDivider": return [ const CustomVerticalDivider(), - const HeightVerticalDivider(), + const WidthVerticalDivider(), ]; case "Placeholder": return [ diff --git a/pubspec.yaml b/pubspec.yaml index 43dfec6..63efc13 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -20,7 +20,6 @@ dependencies: sqflite: ^2.0.2 # 数据库 shared_preferences: ^2.0.13 # xml 固化 jwt_decoder: ^2.0.1 # jwt 解析 - toggle_rotate: ^1.0.1 flutter_star: ^1.0.2 # 星星组件