mirror of
https://github.com/alibaba/flutter-go.git
synced 2025-07-04 15:28:21 +08:00
Merge pull request #367 from hanxu317317/master
Add RangeSlider Widget Demo
This commit is contained in:
19
.github/pull_request_template.md
vendored
19
.github/pull_request_template.md
vendored
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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"}]
|
||||
[{"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"}]
|
@ -0,0 +1,8 @@
|
||||
{
|
||||
"name": "RangeSlider",
|
||||
"screenShot": "",
|
||||
"author":"RangeSlider",
|
||||
"email": "hanxu317@qq.com",
|
||||
"desc": "RangeSlider widget demo",
|
||||
"id": "e5f958bc_52ae_4241_9c8a_5c9e1f92b096"
|
||||
}
|
@ -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()
|
||||
];
|
||||
|
||||
|
@ -0,0 +1,30 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class Demo extends StatefulWidget {
|
||||
@override
|
||||
_State createState() => _State();
|
||||
}
|
||||
|
||||
class _State extends State<Demo> {
|
||||
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;
|
||||
});
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
@ -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
|
||||
};
|
@ -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"}]
|
||||
[{"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"}]
|
@ -0,0 +1,10 @@
|
||||
{
|
||||
"name": "RangeSlider",
|
||||
"screenShot": "",
|
||||
"author":"hanxu",
|
||||
"title":"RangeSlider",
|
||||
"email": "hanxu317@qq.com",
|
||||
"desc": "RangeSlider widget",
|
||||
"id": "cbffbf7c_52ae_4241_9c8a_5c9e1f92b096"
|
||||
}
|
||||
|
@ -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]""";
|
||||
|
||||
|
||||
}
|
||||
|
@ -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]
|
@ -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<String, String> standardPages;
|
||||
Map<String, String> 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<Map<String, String>> 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"}
|
||||
];
|
||||
}
|
||||
|
||||
|
@ -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();
|
||||
|
Reference in New Issue
Block a user