已解决
【Flutter】自定义分段选择器Slider
来自网友在路上 152852提问 提问时间:2023-10-31 12:46:30阅读次数: 52
最佳答案 问答题库528位专家为你答疑解惑
【Flutter】ZFJ自定义分段选择器Slider
前言
在开发一个APP的时候,需要用到一个分段选择器,系统的不满足就自己自定义了一个;
可以自定义节点的数量、自定义节点的大小、自定义滑竿的粗细,自定义气泡的有无等等…
基本上满足你的常用需求。
效果
参数
/// 滑杆的宽度final double width;/// 滑杆的高度final double height;/// 最大值final int? maxValue;/// 最小值final int? minValue;/// 段数final int divisions;/// 滑块的宽度final double sliderWidth;/// 节点的宽度final double nodeWidth;/// 滑动跳到节点final bool toNodeBool;/// 滑竿回调final Function(int) valueChanged;/// 指定初始化的值 0-1final double value;/// 是否可以滑动,默认可以滑动final bool isEnabled;/// 是否显示气泡final bool isShowBubble;/// 气泡和节点单位final String unitText;/// 是否显示节点文字final bool isShowNodeText;/// 选中颜色final Color? activeTrackColor;/// 未选中颜色final Color? unActiveTrackColor;/// 节点背景颜色final Color? nodeBgColor;/// 气泡字体样式final TextStyle? bubbleValueStyle;/// 节点字体样式final TextStyle? nodeValueStyle;
事例
1、使用
// 1、段数:4,有气泡,有单位,有节点文字ZFJNodeSlisder(key: _slisderStateKey_0,width: kZFJScreenUtil.screenWidth - 32,maxValue: 100,value: 0.4,unitText: "%",divisions: 4,isEnabled: true,isShowBubble: true,valueChanged: (value) {print("----------> value = $value");},),// 2、段数:1,有气泡,有单位,有节点文字ZFJNodeSlisder(key: _slisderStateKey_1,width: kZFJScreenUtil.screenWidth - 32,maxValue: 100,value: 0.4,unitText: "%",divisions: 1,activeTrackColor: Colors.red,isEnabled: true,isShowBubble: true,valueChanged: (value) {print("----------> value = $value");},),// 3、段数:3,有气泡,没单位,有节点文字ZFJNodeSlisder(key: _slisderStateKey_2,width: kZFJScreenUtil.screenWidth - 32,maxValue: 100,value: 0.2,unitText: "%",divisions: 3,activeTrackColor: Colors.green,isEnabled: true,isShowBubble: true,valueChanged: (value) {print("----------> value = $value");},),// 4、段数:4,有气泡,没单位,没节点文字ZFJNodeSlisder(key: _slisderStateKey_3,width: kZFJScreenUtil.screenWidth - 32,maxValue: 100,value: 0.1,unitText: "%",divisions: 4,activeTrackColor: Colors.yellow,isShowNodeText: false,isEnabled: true,isShowBubble: true,valueChanged: (value) {print("----------> value = $value");},),
2、获取进度条的值
获取当前进度条的值参与计算等业务;
_slisderStateKey.currentState?.value;
3、更新进度条的值
其他的事件更新进度条的值;
_slisderStateKey.currentState?.updateValue(progress);
进度条全选
_slisderStateKey.currentState?.selectedAll();
源码
喜欢的点个小心心吧⭐️
ZFJFlutterUntils/zfj_node_slisder.dart
查看全文
99%的人还看了
相似问题
- 〖大前端 - 基础入门三大核心之JS篇㊲〗- DOM改变元素节点的css样式、HTML属性
- Java 算法篇-链表的经典算法:判断回文链表、判断环链表与寻找环入口节点(“龟兔赛跑“算法实现)
- 代码随想录二刷 | 链表 | 删除链表的倒数第N个节点
- 节点导纳矩阵
- bhosts 显示节点 “unreach“ 状态
- 电子电器架构 —— 车载网关边缘节点总线转换
- 〖大前端 - 基础入门三大核心之JS篇㊳〗- DOM访问元素节点
- 第四天||24. 两两交换链表中的节点 ● 19.删除链表的倒数第N个节点 ● 面试题 02.07. 链表相交 ● 142.环形链表II
- CS224W5.1——消息传递和节点分类
- Vue报错解决Error in v-on handler: “Error: 无效的节点选择器:#div1“
猜你感兴趣
版权申明
本文"【Flutter】自定义分段选择器Slider":http://eshow365.cn/6-28626-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!