forked from lxm_flutter/FlutterUnit
修改部分表述问题
This commit is contained in:
@@ -48,6 +48,8 @@ android {
|
||||
targetSdkVersion 30
|
||||
versionCode flutterVersionCode.toInteger()
|
||||
versionName flutterVersionName
|
||||
multiDexEnabled true
|
||||
archivesBaseName = "FlutterUnit.apk"
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
|
||||
Binary file not shown.
Binary file not shown.
|
Before Width: | Height: | Size: 264 KiB |
@@ -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'
|
||||
'○ 实现应用内更新功能,方便使用者及时更新到最新版体验。'
|
||||
)
|
||||
],
|
||||
),
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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<GlobalBloc>(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)),
|
||||
)
|
||||
|
||||
@@ -96,7 +96,7 @@ class GalleryFactory {
|
||||
info: "本样例介绍如何绘制弹簧,通过触点竖直拖拽拉伸、压缩,放手时进行恢复动画,是一个很好的综合小案例。\n特殊操作:上下拖拽伸缩弹簧",
|
||||
content: SpringWidget()),
|
||||
FrameShower(
|
||||
title: "绕道点旋转",
|
||||
title: "绕定点旋转",
|
||||
author: "张风捷特烈",
|
||||
srcUrl: '/anim/rotate_by_point',
|
||||
info: "本样例介绍如何根据以某个点为中心,进行旋转运动。以此学习两点间的角度在绘制中的应用。\n特殊操作:点击运行",
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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<ImageSwitch> {
|
||||
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);
|
||||
}))
|
||||
|
||||
@@ -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<Widget>】",
|
||||
// }
|
||||
|
||||
class CustomAboutDialog extends StatelessWidget {
|
||||
const CustomAboutDialog({Key? key}) : super(key: key);
|
||||
|
||||
@@ -16,9 +16,9 @@
|
||||
// "【titlePadding】 : 顶部内边距 【EdgeInsetsGeometry】\n"
|
||||
// "【contentPadding】 : 内容内边距 【EdgeInsetsGeometry】\n"
|
||||
// "【actions】 : 右下角组件列表 【List<Widget>】\n"
|
||||
// "【backgroundColor】 : 右下角组件列表 【背景色】\n"
|
||||
// "【elevation】 : 右下角组件列表 【背景色】\n"
|
||||
// "【shape】 : 影深 【double】",
|
||||
// "【backgroundColor】 : 背景色 【Color】\n"
|
||||
// "【elevation】 : 影深 【double】\n"
|
||||
// "【shape】 : 形状 【ShapeBorder】",
|
||||
// }
|
||||
|
||||
import 'package:flutter/material.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<double>】",
|
||||
// }
|
||||
class CustomAnimatedIcon extends StatefulWidget {
|
||||
const CustomAnimatedIcon({Key? key}) : super(key: key);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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<DataColumn>】\n"
|
||||
// "【rows】 : 行 【List<DataRow>】",
|
||||
// }
|
||||
|
||||
class _Bean {
|
||||
final int id;
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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】",
|
||||
@@ -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"
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -13,9 +13,9 @@ import 'package:flutter/material.dart';
|
||||
// "【children】 : 子组件列表 【List<Widget>】\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);
|
||||
|
||||
@@ -32,7 +32,7 @@ class _SelectSwitchListTileState extends State<SelectSwitchListTile> {
|
||||
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("@万花过尽知无物"),
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -515,7 +515,7 @@ class WidgetsMap {
|
||||
case "VerticalDivider":
|
||||
return [
|
||||
const CustomVerticalDivider(),
|
||||
const HeightVerticalDivider(),
|
||||
const WidthVerticalDivider(),
|
||||
];
|
||||
case "Placeholder":
|
||||
return [
|
||||
|
||||
@@ -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 # 星星组件
|
||||
|
||||
|
||||
Reference in New Issue
Block a user