From 7e89d161ca35414df65793c027c6ef26830ab1c0 Mon Sep 17 00:00:00 2001 From: ryan730 Date: Sun, 1 Sep 2019 12:00:05 +0800 Subject: [PATCH 01/12] move move --- docs/contribute.md | 35 ----------------------------------- 1 file changed, 35 deletions(-) delete mode 100644 docs/contribute.md diff --git a/docs/contribute.md b/docs/contribute.md deleted file mode 100644 index a9c269ab..00000000 --- a/docs/contribute.md +++ /dev/null @@ -1,35 +0,0 @@ -# Flutter Go 共建 - -# 共建说明 - -由于 **Flutter 版本迭代速度较快**,产生的内容较多, 而我们**人力有限**无法更加全面快速的支持Flutter Go的日常维护迭代, 如果您对flutter go的共建感兴趣, 欢迎您来参与本项目的共建. - -**凡是参与共建的成员. 我们会将您的头像与github个人地址收纳进我们的官方网站中.** - -# 共建方式 - -1. 共建组件 - - 本次更新, 开放了 **Widget 内容收录** 的功能, 您需要通过 [goCli](https://github.com/alibaba/flutter-go/blob/master/docs/go-cli.md)工具, 创建标准化组件,编写markdown代码。 - - - 为了更好记录您的改动目的, 内容信息, 交流过程, 每一条PR都需要对应一条 **Issue**, 提交你发现的`BUG`或者想增加的`新功能`, 或者想要增加新的[共建组件](https://github.com/alibaba/flutter-go/blob/maseter/docs/widget.md), - - - 首先选择你的`issue`在类型,然后通过 **Pull Request** 的形式将文章内容, api描述, 组件使用方法等加入进我们的Widget界面。 - - ![](https://img.alicdn.com/tfs/TB1r3LEbKL2gK0jSZFmXXc7iXXa-858-317.png) - -2. 提交文章和修改bug - - 您也可以将例如**日常bug.** **未来feature**等的功能性PR, 申请提交到我们的的主仓库。 - - -# 参与共建 - -关于如何提PR请先阅读以下文档 - -- [如何向仓库提交 Pull Request](https://github.com/alibaba/flutter-go/blob/master/docs/push-pr.md) -- [dart 代码规范](https://github.com/alibaba/flutter-go/blob/master/Flutter_Go%20%E4%BB%A3%E7%A0%81%E5%BC%80%E5%8F%91%E8%A7%84%E8%8C%83.md) -- [如何使用go-cli 创建 Widget Page](https://github.com/alibaba/flutter-go/blob/master/docs/widget.md) - - -# 贡献指南 - -此项目遵循[贡献者行为准则](https://github.com/spring-projects/spring-framework/blob/master/CODE_OF_CONDUCT.adoc)。参与此项目即表示您同意遵守其条款. From 80077a5d1f7d864a00dce7450132b8d4465a4a94 Mon Sep 17 00:00:00 2001 From: ryan730 Date: Sun, 1 Sep 2019 12:01:45 +0800 Subject: [PATCH 02/12] move move --- docs/contribute.md | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 docs/contribute.md diff --git a/docs/contribute.md b/docs/contribute.md new file mode 100644 index 00000000..a9c269ab --- /dev/null +++ b/docs/contribute.md @@ -0,0 +1,35 @@ +# Flutter Go 共建 + +# 共建说明 + +由于 **Flutter 版本迭代速度较快**,产生的内容较多, 而我们**人力有限**无法更加全面快速的支持Flutter Go的日常维护迭代, 如果您对flutter go的共建感兴趣, 欢迎您来参与本项目的共建. + +**凡是参与共建的成员. 我们会将您的头像与github个人地址收纳进我们的官方网站中.** + +# 共建方式 + +1. 共建组件 + - 本次更新, 开放了 **Widget 内容收录** 的功能, 您需要通过 [goCli](https://github.com/alibaba/flutter-go/blob/master/docs/go-cli.md)工具, 创建标准化组件,编写markdown代码。 + + - 为了更好记录您的改动目的, 内容信息, 交流过程, 每一条PR都需要对应一条 **Issue**, 提交你发现的`BUG`或者想增加的`新功能`, 或者想要增加新的[共建组件](https://github.com/alibaba/flutter-go/blob/maseter/docs/widget.md), + + - 首先选择你的`issue`在类型,然后通过 **Pull Request** 的形式将文章内容, api描述, 组件使用方法等加入进我们的Widget界面。 + + ![](https://img.alicdn.com/tfs/TB1r3LEbKL2gK0jSZFmXXc7iXXa-858-317.png) + +2. 提交文章和修改bug + - 您也可以将例如**日常bug.** **未来feature**等的功能性PR, 申请提交到我们的的主仓库。 + + +# 参与共建 + +关于如何提PR请先阅读以下文档 + +- [如何向仓库提交 Pull Request](https://github.com/alibaba/flutter-go/blob/master/docs/push-pr.md) +- [dart 代码规范](https://github.com/alibaba/flutter-go/blob/master/Flutter_Go%20%E4%BB%A3%E7%A0%81%E5%BC%80%E5%8F%91%E8%A7%84%E8%8C%83.md) +- [如何使用go-cli 创建 Widget Page](https://github.com/alibaba/flutter-go/blob/master/docs/widget.md) + + +# 贡献指南 + +此项目遵循[贡献者行为准则](https://github.com/spring-projects/spring-framework/blob/master/CODE_OF_CONDUCT.adoc)。参与此项目即表示您同意遵守其条款. From 26804086138ed8ee0ed5578e25c2cbbe068cf24c Mon Sep 17 00:00:00 2001 From: ryan730 Date: Sun, 1 Sep 2019 12:04:55 +0800 Subject: [PATCH 03/12] create create --- CONTRIBUTING.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..fc13245c --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1 @@ +[Flutter Go 共建](https://github.com/alibaba/flutter-go/blob/master/docs/contribute.md) From 053cbb5cde37969daa64c26f1989cfee7c45e142 Mon Sep 17 00:00:00 2001 From: ryan730 Date: Sun, 1 Sep 2019 12:08:35 +0800 Subject: [PATCH 04/12] Create CODE_OF_CONDUCT.md --- CODE_OF_CONDUCT.md | 76 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 CODE_OF_CONDUCT.md diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..905b4fab --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,76 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, sex characteristics, gender identity and expression, +level of experience, education, socio-economic status, nationality, personal +appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or + advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at zhu.yan@alibaba-inc.com. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see +https://www.contributor-covenant.org/faq From 212d746c480720e742b0a8f178494849ac4fb330 Mon Sep 17 00:00:00 2001 From: ryan730 Date: Sun, 1 Sep 2019 12:22:41 +0800 Subject: [PATCH 05/12] create create --- .github/PULL_REQUEST_TEMPLATE.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 .github/PULL_REQUEST_TEMPLATE.md diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000..aca9f499 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,19 @@ +#### What does this PR do? + +[TrelloCard/Issue/Story](LINK_TO_STORY) + +##### Why are we doing this? Any context or related work? + +#### Where should a reviewer start? + +#### Manual testing steps? + +#### Screenshots + +--- + +#### Database changes + +#### Deployment instructions + +#### New ENV variables From 47e4be0b947ea35071aa6e4413aab6be5a7d0b41 Mon Sep 17 00:00:00 2001 From: zxx Date: Mon, 9 Sep 2019 15:56:28 +0800 Subject: [PATCH 06/12] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E9=97=AA=E5=B1=8F?= =?UTF-8?q?=E9=A1=B5=E5=8D=A1=E4=B8=BB=E5=92=8Cgithub=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E6=97=A0=E6=95=88=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/main.dart | 1 + lib/views/login_page/login_page.dart | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index 2a5a944d..c8a0c4cd 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -203,6 +203,7 @@ void _startupJpush() async { } void main() async { + WidgetsFlutterBinding.ensureInitialized(); final provider = new Provider(); await provider.init(true); sp = await SpUtil.getInstance(); diff --git a/lib/views/login_page/login_page.dart b/lib/views/login_page/login_page.dart index bc8ae79f..6654a7d7 100644 --- a/lib/views/login_page/login_page.dart +++ b/lib/views/login_page/login_page.dart @@ -137,7 +137,7 @@ class _LoginPageState extends State { if (value.isEmpty) { return "登录名不可为空!"; } - return ' '; + return null; }, onSaved: (value) { setState(() { @@ -180,7 +180,7 @@ class _LoginPageState extends State { if (value == null || value.isEmpty) { return "密码不可为空!"; } - return ''; + return null; }, onSaved: (value) { setState(() { From df0f1b70157ebdc0b7721b2f05daab73bb997ade Mon Sep 17 00:00:00 2001 From: "sanfan.hx" Date: Thu, 12 Sep 2019 17:15:21 +0800 Subject: [PATCH 07/12] =?UTF-8?q?feat(add=20RangeSlider=20=E7=95=8C?= =?UTF-8?q?=E9=9D=A2,=20=E5=B9=B6=E8=BF=BD=E5=8A=A0demo):?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/page_demo_package/.demo.json | 2 +- .../.demo.json | 8 +++++ .../index.dart | 15 ++++++++ .../src/index.dart | 30 ++++++++++++++++ lib/page_demo_package/index.dart | 2 ++ lib/standard_pages/.pages.json | 2 +- .../.page.json | 10 ++++++ .../index.dart | 36 +++++++++++++++++++ .../index.md | 30 ++++++++++++++++ lib/standard_pages/index.dart | 5 +++ 10 files changed, 138 insertions(+), 2 deletions(-) create mode 100644 lib/page_demo_package/RangeSlider_RangeSlider_e5f958bc_52ae_4241_9c8a_5c9e1f92b096/.demo.json create mode 100644 lib/page_demo_package/RangeSlider_RangeSlider_e5f958bc_52ae_4241_9c8a_5c9e1f92b096/index.dart create mode 100644 lib/page_demo_package/RangeSlider_RangeSlider_e5f958bc_52ae_4241_9c8a_5c9e1f92b096/src/index.dart create mode 100644 lib/standard_pages/RangeSlider_hanxu_cbffbf7c_52ae_4241_9c8a_5c9e1f92b096/.page.json create mode 100644 lib/standard_pages/RangeSlider_hanxu_cbffbf7c_52ae_4241_9c8a_5c9e1f92b096/index.dart create mode 100644 lib/standard_pages/RangeSlider_hanxu_cbffbf7c_52ae_4241_9c8a_5c9e1f92b096/index.md diff --git a/lib/page_demo_package/.demo.json b/lib/page_demo_package/.demo.json index 1967c339..ba8d68dc 100644 --- a/lib/page_demo_package/.demo.json +++ b/lib/page_demo_package/.demo.json @@ -1 +1 @@ -[{"name":"demoName","screenShot":"","author":"yourName","email":"yourEmail","desc":"这是一个测试的标准demo","id":"1a29aa8e_32ae_4241_9c8a_5c9e1f92b096"},{"name":"local","screenShot":"","author":"ab","email":"email","desc":"ags","id":"2c1d57d0_42ae_4241_9c8a_5c9e1f92b096"}] \ No newline at end of file +[{"name":"RangeSlider","screenShot":"","author":"RangeSlider","email":"hanxu317@qq.com","desc":"RangeSlider widget demo","id":"e5f958bc_52ae_4241_9c8a_5c9e1f92b096"},{"name":"demoName","screenShot":"","author":"yourName","email":"yourEmail","desc":"这是一个测试的标准demo","id":"1a29aa8e_32ae_4241_9c8a_5c9e1f92b096"},{"name":"local","screenShot":"","author":"ab","email":"email","desc":"ags","id":"2c1d57d0_42ae_4241_9c8a_5c9e1f92b096"}] \ No newline at end of file diff --git a/lib/page_demo_package/RangeSlider_RangeSlider_e5f958bc_52ae_4241_9c8a_5c9e1f92b096/.demo.json b/lib/page_demo_package/RangeSlider_RangeSlider_e5f958bc_52ae_4241_9c8a_5c9e1f92b096/.demo.json new file mode 100644 index 00000000..10444611 --- /dev/null +++ b/lib/page_demo_package/RangeSlider_RangeSlider_e5f958bc_52ae_4241_9c8a_5c9e1f92b096/.demo.json @@ -0,0 +1,8 @@ +{ + "name": "RangeSlider", + "screenShot": "", + "author":"RangeSlider", + "email": "hanxu317@qq.com", + "desc": "RangeSlider widget demo", + "id": "e5f958bc_52ae_4241_9c8a_5c9e1f92b096" +} diff --git a/lib/page_demo_package/RangeSlider_RangeSlider_e5f958bc_52ae_4241_9c8a_5c9e1f92b096/index.dart b/lib/page_demo_package/RangeSlider_RangeSlider_e5f958bc_52ae_4241_9c8a_5c9e1f92b096/index.dart new file mode 100644 index 00000000..53760649 --- /dev/null +++ b/lib/page_demo_package/RangeSlider_RangeSlider_e5f958bc_52ae_4241_9c8a_5c9e1f92b096/index.dart @@ -0,0 +1,15 @@ +// +// Created with flutter go cli +// User: RangeSlider +// Time: 2019-09-12 15:11:05.512158 +// email: hanxu317@qq.com +// desc: RangeSlider widget demo +// + +import 'src/index.dart'; + +var demoWidgets = [ + new Demo() +]; + + \ No newline at end of file diff --git a/lib/page_demo_package/RangeSlider_RangeSlider_e5f958bc_52ae_4241_9c8a_5c9e1f92b096/src/index.dart b/lib/page_demo_package/RangeSlider_RangeSlider_e5f958bc_52ae_4241_9c8a_5c9e1f92b096/src/index.dart new file mode 100644 index 00000000..bc34bf8f --- /dev/null +++ b/lib/page_demo_package/RangeSlider_RangeSlider_e5f958bc_52ae_4241_9c8a_5c9e1f92b096/src/index.dart @@ -0,0 +1,30 @@ +import 'package:flutter/material.dart'; + +class Demo extends StatefulWidget { + @override + _State createState() => _State(); +} + +class _State extends State { + RangeValues valuess = RangeValues(20.0, 50.0); + @override + Widget build(BuildContext context) { + return RangeSlider( + values: valuess, + //实际进度的位置 + inactiveColor: Colors.black12, + //进度中不活动部分的颜色 + labels: RangeLabels('12', '23'), + min: 0.0, + max: 100.0, + divisions: 1000, + activeColor: Colors.blue, + //进度中活动部分的颜色 + onChanged: (rangeValues) { + setState(() { + valuess = rangeValues; + }); + }, + ); + } +} diff --git a/lib/page_demo_package/index.dart b/lib/page_demo_package/index.dart index 1e6a4966..84aae6a0 100644 --- a/lib/page_demo_package/index.dart +++ b/lib/page_demo_package/index.dart @@ -1,6 +1,8 @@ +import 'RangeSlider_RangeSlider_e5f958bc_52ae_4241_9c8a_5c9e1f92b096/index.dart' as StandardDemo_RangeSlider_e5f958bc_52ae_4241_9c8a_5c9e1f92b096; import 'demoName_yourName_1a29aa8e_32ae_4241_9c8a_5c9e1f92b096/index.dart' as StandardDemo_demoName_1a29aa8e_32ae_4241_9c8a_5c9e1f92b096; import 'local_ab_2c1d57d0_42ae_4241_9c8a_5c9e1f92b096/index.dart' as StandardDemo_local_2c1d57d0_42ae_4241_9c8a_5c9e1f92b096; var demoObjects = { + 'e5f958bc_52ae_4241_9c8a_5c9e1f92b096': StandardDemo_RangeSlider_e5f958bc_52ae_4241_9c8a_5c9e1f92b096.demoWidgets, '1a29aa8e_32ae_4241_9c8a_5c9e1f92b096': StandardDemo_demoName_1a29aa8e_32ae_4241_9c8a_5c9e1f92b096.demoWidgets, '2c1d57d0_42ae_4241_9c8a_5c9e1f92b096': StandardDemo_local_2c1d57d0_42ae_4241_9c8a_5c9e1f92b096.demoWidgets }; \ No newline at end of file diff --git a/lib/standard_pages/.pages.json b/lib/standard_pages/.pages.json index 9b3a3ca9..d4aec412 100644 --- a/lib/standard_pages/.pages.json +++ b/lib/standard_pages/.pages.json @@ -1 +1 @@ -[{"name":"local","screenShot":"","author":"hnaxu","title":"本地","email":"hanxu@qq.com","desc":"desc","id":"5d7178d0_42ae_4241_9c8a_5c9e1f92b096"},{"name":"test","screenShot":"","author":"abc","title":"ya","email":"adsf.com","desc":"desc","id":"84f38e00_42ae_4241_9c8a_5c9e1f92b096"},{"name":"standard","screenShot":"","author":"sanfan","title":"介绍页","email":"hanxu317@qq.com","desc":"desc","id":"ee4feb8e_32ae_4241_9c8a_5c9e1f92b096"},{"name":"standard_for_slider","screenShot":"","author":"sanfan","title":"slider组件","email":"hanxu@qq.com","desc":"slider, new Slider","id":"8ab2b5c2_42ae_4241_9c8a_5c9e1f92b096"}] \ No newline at end of file +[{"name":"local","screenShot":"","author":"hnaxu","title":"本地","email":"hanxu@qq.com","desc":"desc","id":"5d7178d0_42ae_4241_9c8a_5c9e1f92b096"},{"name":"test","screenShot":"","author":"abc","title":"ya","email":"adsf.com","desc":"desc","id":"84f38e00_42ae_4241_9c8a_5c9e1f92b096"},{"name":"standard","screenShot":"","author":"sanfan","title":"介绍页","email":"hanxu317@qq.com","desc":"desc","id":"ee4feb8e_32ae_4241_9c8a_5c9e1f92b096"},{"name":"standard_for_slider","screenShot":"","author":"sanfan","title":"slider组件","email":"hanxu@qq.com","desc":"slider, new Slider","id":"8ab2b5c2_42ae_4241_9c8a_5c9e1f92b096"},{"name":"RangeSlider","screenShot":"","author":"hanxu","title":"RangeSlider","email":"hanxu317@qq.com","desc":"RangeSlider widget","id":"cbffbf7c_52ae_4241_9c8a_5c9e1f92b096"}] \ No newline at end of file diff --git a/lib/standard_pages/RangeSlider_hanxu_cbffbf7c_52ae_4241_9c8a_5c9e1f92b096/.page.json b/lib/standard_pages/RangeSlider_hanxu_cbffbf7c_52ae_4241_9c8a_5c9e1f92b096/.page.json new file mode 100644 index 00000000..553fa67b --- /dev/null +++ b/lib/standard_pages/RangeSlider_hanxu_cbffbf7c_52ae_4241_9c8a_5c9e1f92b096/.page.json @@ -0,0 +1,10 @@ +{ + "name": "RangeSlider", + "screenShot": "", + "author":"hanxu", + "title":"RangeSlider", + "email": "hanxu317@qq.com", + "desc": "RangeSlider widget", + "id": "cbffbf7c_52ae_4241_9c8a_5c9e1f92b096" +} + \ No newline at end of file diff --git a/lib/standard_pages/RangeSlider_hanxu_cbffbf7c_52ae_4241_9c8a_5c9e1f92b096/index.dart b/lib/standard_pages/RangeSlider_hanxu_cbffbf7c_52ae_4241_9c8a_5c9e1f92b096/index.dart new file mode 100644 index 00000000..63850c68 --- /dev/null +++ b/lib/standard_pages/RangeSlider_hanxu_cbffbf7c_52ae_4241_9c8a_5c9e1f92b096/index.dart @@ -0,0 +1,36 @@ +String getMd() { + return """ + # RangeSlider + +> 用来选择范围性的数据 + +slider 用来选择连续性的或者非连续性的数据. 默认是在一段最大值最小值间做任意值的选择. 如果你想选择间隔性的值, 例如0.0到50.0间,选择10, 15,...50.0这样的值, 给divisions设定一个非空的整数5,, 去分割区间范围. + + +### **基本用法** + +关于slider有以下的术语: + +* **thumb** 滑块 用户可以水平拖拽移动的区域 + +* **track** 滑轨 thumb 可以滑动的线条区域 + +* **value indicator** 值指示器 当用户拖拽thumb的时候. 显示用户当前所选的属性值 + +* **active** 选中区 + +* **inactive** 非选中区 + +如果**onChanged**属性为空或者**min** .. **max**给出的范围 为空(例如如果min等于max),则将禁用滑块。 + +滑块小部件本身不保持任何状态State。相反,当滑块状态发生变化时,窗口小部件会调用 **onChanged** 回调。大多数使用滑块的小部件将侦听 **onChanged** 回调并使用新值重建滑块以更新滑块的视觉外观。要知道值何时开始更改,或何时更改,请设置可选回调**onChangeStart**或**onChangeEnd**。 + +默认情况下,滑块将尽可能宽,垂直居中。当给定无限制约束时,它将尝试使轨道宽144像素(每边有边距)并垂直收缩。 + +### 实例展示 + +[demo:e5f958bc_52ae_4241_9c8a_5c9e1f92b096]"""; + + +} + \ No newline at end of file diff --git a/lib/standard_pages/RangeSlider_hanxu_cbffbf7c_52ae_4241_9c8a_5c9e1f92b096/index.md b/lib/standard_pages/RangeSlider_hanxu_cbffbf7c_52ae_4241_9c8a_5c9e1f92b096/index.md new file mode 100644 index 00000000..d6049358 --- /dev/null +++ b/lib/standard_pages/RangeSlider_hanxu_cbffbf7c_52ae_4241_9c8a_5c9e1f92b096/index.md @@ -0,0 +1,30 @@ +# RangeSlider + +> 用来选择范围性的数据 + +slider 用来选择连续性的或者非连续性的数据. 默认是在一段最大值最小值间做任意值的选择. 如果你想选择间隔性的值, 例如0.0到50.0间,选择10, 15,...50.0这样的值, 给divisions设定一个非空的整数5,, 去分割区间范围. + + +### **基本用法** + +关于slider有以下的术语: + +* **thumb** 滑块 用户可以水平拖拽移动的区域 + +* **track** 滑轨 thumb 可以滑动的线条区域 + +* **value indicator** 值指示器 当用户拖拽thumb的时候. 显示用户当前所选的属性值 + +* **active** 选中区 + +* **inactive** 非选中区 + +如果**onChanged**属性为空或者**min** .. **max**给出的范围 为空(例如如果min等于max),则将禁用滑块。 + +滑块小部件本身不保持任何状态State。相反,当滑块状态发生变化时,窗口小部件会调用 **onChanged** 回调。大多数使用滑块的小部件将侦听 **onChanged** 回调并使用新值重建滑块以更新滑块的视觉外观。要知道值何时开始更改,或何时更改,请设置可选回调**onChangeStart**或**onChangeEnd**。 + +默认情况下,滑块将尽可能宽,垂直居中。当给定无限制约束时,它将尝试使轨道宽144像素(每边有边距)并垂直收缩。 + +### 实例展示 + +[demo:e5f958bc_52ae_4241_9c8a_5c9e1f92b096] \ No newline at end of file diff --git a/lib/standard_pages/index.dart b/lib/standard_pages/index.dart index 6af27c34..1f0c7437 100644 --- a/lib/standard_pages/index.dart +++ b/lib/standard_pages/index.dart @@ -3,6 +3,7 @@ import 'local_hnaxu_5d7178d0_42ae_4241_9c8a_5c9e1f92b096/index.dart' as Standard import 'test_abc_84f38e00_42ae_4241_9c8a_5c9e1f92b096/index.dart' as StandardPage_test_84f38e00_42ae_4241_9c8a_5c9e1f92b096; import 'standard_sanfan_ee4feb8e_32ae_4241_9c8a_5c9e1f92b096/index.dart' as StandardPage_standard_ee4feb8e_32ae_4241_9c8a_5c9e1f92b096; import 'standard_for_slider_sanfan_8ab2b5c2_42ae_4241_9c8a_5c9e1f92b096/index.dart' as StandardPage_standard_for_slider_8ab2b5c2_42ae_4241_9c8a_5c9e1f92b096; +import 'RangeSlider_hanxu_cbffbf7c_52ae_4241_9c8a_5c9e1f92b096/index.dart' as StandardPage_RangeSlider_cbffbf7c_52ae_4241_9c8a_5c9e1f92b096; class StandardPages { Map standardPages; Map getPages() { @@ -15,6 +16,8 @@ class StandardPages { "ee4feb8e_32ae_4241_9c8a_5c9e1f92b096" : StandardPage_standard_ee4feb8e_32ae_4241_9c8a_5c9e1f92b096.getMd() , "8ab2b5c2_42ae_4241_9c8a_5c9e1f92b096" : StandardPage_standard_for_slider_8ab2b5c2_42ae_4241_9c8a_5c9e1f92b096.getMd() +, + "cbffbf7c_52ae_4241_9c8a_5c9e1f92b096" : StandardPage_RangeSlider_cbffbf7c_52ae_4241_9c8a_5c9e1f92b096.getMd() }; } List> getLocalList() { @@ -27,6 +30,8 @@ class StandardPages { { "id": "ee4feb8e_32ae_4241_9c8a_5c9e1f92b096", "name": "standard", "email": "hanxu317@qq.com", "author": "sanfan"} , { "id": "8ab2b5c2_42ae_4241_9c8a_5c9e1f92b096", "name": "standard_for_slider", "email": "hanxu@qq.com", "author": "sanfan"} +, + { "id": "cbffbf7c_52ae_4241_9c8a_5c9e1f92b096", "name": "RangeSlider", "email": "hanxu317@qq.com", "author": "hanxu"} ]; } From 594f990d1b3ae12dbeab344333a2f96b8a06228f Mon Sep 17 00:00:00 2001 From: zxx Date: Tue, 17 Sep 2019 00:51:17 +0800 Subject: [PATCH 08/12] =?UTF-8?q?1=E3=80=81=E4=B8=B4=E6=97=B6=E8=A7=A3?= =?UTF-8?q?=E5=86=B3widget=E6=90=9C=E7=B4=A2,textField=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E7=AB=AF=E8=BF=94=E5=9B=9E=E8=B7=AF=E5=BE=84=E4=B8=8E=E6=9C=AC?= =?UTF-8?q?=E5=9C=B0=E6=9C=89=E8=AF=AF=E5=AF=BC=E8=87=B4=E7=9A=84=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E8=B7=B3=E8=BD=AC=E7=9A=84=E9=97=AE=E9=A2=98=202?= =?UTF-8?q?=E3=80=81=E6=B7=BB=E5=8A=A0widget=E6=90=9C=E7=B4=A2=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E6=B8=85=E9=99=A4=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/components/search_input.dart | 114 ++++++++++++++++++------------- lib/views/home.dart | 12 +++- 2 files changed, 76 insertions(+), 50 deletions(-) diff --git a/lib/components/search_input.dart b/lib/components/search_input.dart index 9fdc3eff..9852c83a 100644 --- a/lib/components/search_input.dart +++ b/lib/components/search_input.dart @@ -15,13 +15,9 @@ typedef void OnSubmit(String value); ///搜索结果内容显示面板 class MaterialSearchResult extends StatelessWidget { - const MaterialSearchResult({ - Key key, - this.value, - this.text, - this.icon, - this.onTap - }) : super(key: key); + const MaterialSearchResult( + {Key key, this.value, this.text, this.icon, this.onTap}) + : super(key: key); final String value; final VoidCallback onTap; @@ -30,7 +26,6 @@ class MaterialSearchResult extends StatelessWidget { @override Widget build(BuildContext context) { - return new InkWell( onTap: this.onTap, child: new Container( @@ -38,8 +33,14 @@ class MaterialSearchResult extends StatelessWidget { padding: EdgeInsets.fromLTRB(20.0, 0.0, 20.0, 10.0), child: new Row( children: [ - new Container(width: 30.0, margin: EdgeInsets.only(right: 10), child: new Icon(icon)) ?? null, - new Expanded(child: new Text(value, style: Theme.of(context).textTheme.subhead)), + new Container( + width: 30.0, + margin: EdgeInsets.only(right: 10), + child: new Icon(icon)) ?? + null, + new Expanded( + child: new Text(value, + style: Theme.of(context).textTheme.subhead)), new Text(text, style: Theme.of(context).textTheme.subhead) ], ), @@ -124,6 +125,7 @@ class _MaterialSearchState extends State { } Timer _resultsTimer; + Future _getResultsDebounced() async { if (_results.length == 0) { setState(() { @@ -164,6 +166,7 @@ class _MaterialSearchState extends State { super.dispose(); _resultsTimer?.cancel(); } + Widget buildBody(List results) { if (_criteria.isEmpty) { return History(); @@ -171,16 +174,11 @@ class _MaterialSearchState extends State { return new Center( child: new Padding( padding: const EdgeInsets.only(top: 50.0), - child: new CircularProgressIndicator() - ) - ); + child: new CircularProgressIndicator())); } if (results.isNotEmpty) { - var content = new SingleChildScrollView( - child: new Column( - children: results - ) - ); + var content = + new SingleChildScrollView(child: new Column(children: results)); return content; } return Center(child: Text("暂无数据")); @@ -241,7 +239,7 @@ class _MaterialSearchState extends State { ], ), body: buildBody(results), - ); + ); } } @@ -405,34 +403,35 @@ class SearchInput extends StatelessWidget { } // wigdet干掉.=> componets - class History extends StatefulWidget { const History() : super(); @override - _History createState() => _History(); + _History createState() => _History(); } // AppBar 默认的实例,有状态 class _History extends State { SearchHistoryList searchHistoryList = new SearchHistoryList(); + bool refreshFlag; @override void initState() { super.initState(); + this.refreshFlag = true; } @override void dispose() { super.dispose(); } + buildChips(BuildContext context) { List list = []; List historyList = searchHistoryList.getList(); print("historyList> $historyList"); Color bgColor = Theme.of(context).primaryColor; historyList.forEach((SearchHistory value) { - Widget icon = CircleAvatar( backgroundColor: bgColor, child: Text( @@ -445,20 +444,28 @@ class _History extends State { } String targetRouter = value.targetRouter; - list.add( - InkWell( - onTap: () { - Application.router.navigateTo(context, "${targetRouter.toLowerCase()}", transition: TransitionType.inFromRight); - }, - child: Chip( - avatar: icon, - label: Text("${value.name}"), - ), - ) - ); + list.add(InkWell( + onTap: () { + Application.router.navigateTo( + context, "${targetRouter.toLowerCase()}", + transition: TransitionType.inFromRight); + }, + child: Chip( + avatar: icon, + label: Text("${value.name}"), + ), + )); }); return list; } + + _clearHistory() { + searchHistoryList.clear(); + this.setState(() { + this.refreshFlag = !this.refreshFlag; + }); + } + @override Widget build(BuildContext context) { List childList = buildChips(context); @@ -470,25 +477,38 @@ class _History extends State { return Column( children: [ Container( - alignment: Alignment.centerLeft, - padding: EdgeInsets.fromLTRB(12.0, 12, 12, 0), - child: InkWell( - onLongPress: () { - searchHistoryList.clear(); - }, - child: Text('历史搜索'), - ), - ), + alignment: Alignment.centerLeft, + padding: EdgeInsets.fromLTRB(12.0, 12, 12, 0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + InkWell( + onLongPress: () { + searchHistoryList.clear(); + }, + child: Text('历史搜索'), + ), + GestureDetector( + onTap: _clearHistory, + child: Container( + child: new Icon(Icons.delete, + size: 24.0, color: Theme.of(context).accentColor), + width: 30, + height: 30, + ), + ) + ], + )), Container( padding: EdgeInsets.only(left: 10), alignment: Alignment.topLeft, child: Wrap( - spacing: 6.0, // gap between adjacent chips - runSpacing: 0.0, // gap between lines - children: childList - ), + spacing: 6.0, // gap between adjacent chips + runSpacing: 0.0, // gap between lines + children: childList), ) ], ); } -} \ No newline at end of file +} diff --git a/lib/views/home.dart b/lib/views/home.dart index 435fc81d..221ff53f 100644 --- a/lib/views/home.dart +++ b/lib/views/home.dart @@ -24,6 +24,8 @@ import 'package:flutter_go/components/search_input.dart'; import 'package:flutter_go/model/search_history.dart'; import 'package:flutter_go/resources/widget_name_to_icon.dart'; import 'package:flutter_go/model/user_info.dart'; +// 临时修复引入 +import '../widgets/elements/Form/Input/TextField/index.dart' as TextField; class AppPage extends StatefulWidget { final UserInformation userInfo; @@ -96,10 +98,14 @@ class _MyHomePageState extends State void onWidgetTap(WidgetPoint widgetPoint, BuildContext context) { String targetName = widgetPoint.name; - searchHistoryList.add( - SearchHistory(name: targetName, targetRouter: widgetPoint.routerName)); - print("searchHistoryList1 ${searchHistoryList.toString()}"); String targetRouter = widgetPoint.routerName; + // 临时修复TextField路径问题 + if(widgetPoint.name == 'TextField'){ + targetRouter = TextField.Demo.routeName; + } + searchHistoryList.add( + SearchHistory(name: targetName, targetRouter: targetRouter)); + print("searchHistoryList1 ${searchHistoryList.toString()}"); Application.router.navigateTo(context, targetRouter.toLowerCase(), transition: TransitionType.inFromRight); } From 94bf52ee51dfee0501244f307ccfdaa50ef8067b Mon Sep 17 00:00:00 2001 From: "sanfan.hx" Date: Tue, 17 Sep 2019 11:47:41 +0800 Subject: [PATCH 09/12] Update pull_request_template.md --- .github/pull_request_template.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index e69de29b..aca9f499 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -0,0 +1,19 @@ +#### What does this PR do? + +[TrelloCard/Issue/Story](LINK_TO_STORY) + +##### Why are we doing this? Any context or related work? + +#### Where should a reviewer start? + +#### Manual testing steps? + +#### Screenshots + +--- + +#### Database changes + +#### Deployment instructions + +#### New ENV variables From 84b40cb721cdaaff24e8ceadc06d27ee2fafcb86 Mon Sep 17 00:00:00 2001 From: "sanfan.hx" Date: Tue, 17 Sep 2019 14:24:42 +0800 Subject: [PATCH 10/12] =?UTF-8?q?fixed:=20=E8=A7=A3=E5=86=B3textfield?= =?UTF-8?q?=E7=9A=84=E8=B7=AF=E5=BE=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/model/search_history.dart | 2 +- lib/widgets/elements/Form/Input/TextField/index.dart | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/model/search_history.dart b/lib/model/search_history.dart index da2e4cdd..ecaef036 100644 --- a/lib/model/search_history.dart +++ b/lib/model/search_history.dart @@ -73,7 +73,7 @@ class SearchHistoryList { } add(SearchHistory item) { - print("_searchHistoryList> ${_searchHistoryList.length}"); + print("add item to serach history ${item.targetRouter}"); for (SearchHistory value in _searchHistoryList) { if (value.name == item.name) { return; diff --git a/lib/widgets/elements/Form/Input/TextField/index.dart b/lib/widgets/elements/Form/Input/TextField/index.dart index fe5fe77b..bbb2900c 100644 --- a/lib/widgets/elements/Form/Input/TextField/index.dart +++ b/lib/widgets/elements/Form/Input/TextField/index.dart @@ -34,7 +34,7 @@ const String _textFieldText2 = """### **进阶用法** """; class Demo extends StatefulWidget { - static const String routeName = 'elements/Form/Input/TextField'; + static const String routeName = 'element/Form/Input/TextField'; @override _DemoState createState() => _DemoState(); From 11c2e619c3c576c631e9eb11486dcb578f5d81b1 Mon Sep 17 00:00:00 2001 From: "sanfan.hx" Date: Tue, 17 Sep 2019 14:31:45 +0800 Subject: [PATCH 11/12] update: remote temp code --- lib/views/home.dart | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/lib/views/home.dart b/lib/views/home.dart index 221ff53f..f8e6815f 100644 --- a/lib/views/home.dart +++ b/lib/views/home.dart @@ -24,8 +24,8 @@ import 'package:flutter_go/components/search_input.dart'; import 'package:flutter_go/model/search_history.dart'; import 'package:flutter_go/resources/widget_name_to_icon.dart'; import 'package:flutter_go/model/user_info.dart'; -// 临时修复引入 -import '../widgets/elements/Form/Input/TextField/index.dart' as TextField; + + class AppPage extends StatefulWidget { final UserInformation userInfo; @@ -99,10 +99,6 @@ class _MyHomePageState extends State void onWidgetTap(WidgetPoint widgetPoint, BuildContext context) { String targetName = widgetPoint.name; String targetRouter = widgetPoint.routerName; - // 临时修复TextField路径问题 - if(widgetPoint.name == 'TextField'){ - targetRouter = TextField.Demo.routeName; - } searchHistoryList.add( SearchHistory(name: targetName, targetRouter: targetRouter)); print("searchHistoryList1 ${searchHistoryList.toString()}"); From 43ff828b0df91c214ed37992bf7aa895083d2a6c Mon Sep 17 00:00:00 2001 From: "sanfan.hx" Date: Tue, 17 Sep 2019 17:43:27 +0800 Subject: [PATCH 12/12] =?UTF-8?q?fixed:=20=E5=9B=9E=E5=88=B0=E9=A6=96?= =?UTF-8?q?=E9=A1=B5=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/components/widget_demo.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/components/widget_demo.dart b/lib/components/widget_demo.dart index 6bc9839f..1e2d5744 100644 --- a/lib/components/widget_demo.dart +++ b/lib/components/widget_demo.dart @@ -185,7 +185,7 @@ class _WidgetDemoState extends State { new IconButton( tooltip: 'goBack home', onPressed: () { - Navigator.popUntil(context, ModalRoute.withName(Routes.home)); + Navigator.popUntil(context, ModalRoute.withName(Routes.root)); }, icon: Icon(Icons.home), ),