档位控件,拖拽选择 (❗️注意:考虑到性能优化,android 系统在拖拽和移动动效中不会实时更新中间的文字)
Properties:
Name | Type | Description |
---|---|---|
options |
array.<string> | array.<number> | 档位可选项,以字符串数组表示,必填 |
margin |
number | 档位选项之间的间距,默认 12, 示意图 |12🛑12⭕️12| |
maxWidth |
number | 容器宽度最大值,不传则默认屏幕宽度。 如果所有档位的宽度 + 间距占据的宽度 <= maxWidth,则取实际宽度; 否则容器宽度取 maxWidth,各个档位的宽度和间距自适应减小。 |
containerStyle |
style | 容器样式,设置宽高无效 |
normalStyle |
style | 普通档位样式,如果没有设置宽高,则默认宽高为 50 |
textStyle |
style | 档位文字的样式 |
selectColor |
string | 被选择档位的背景色 |
selectIndex |
number | 被选择档位的数组下标 |
onSelect |
function | 选择某档位后的回调函数 |
- Since:
- 10011
Methods
_onPanResponderGrant()
手势开始回调
_onPanResponderRelease()
手势释放回调
animated2TargetIndex()
以动画效果移动到目标选项,不管是释放还是点击
calculateCoord()
计算整个容器的大小和在屏幕上的位置,从而确定每个选项的圆心坐标
getClosetIndex()
获取距离拖拽元素最近的选项下标 根据释放时的绝对坐标和各个选项的绝对坐标距离做对比
getCorrectLayout() → {Object}
根据选项的宽度、间距和 maxWidth ,计算容器实际宽度,选项实际宽度,实际间距
getDragRange()
计算可拖拽的范围,以及当前被选项到其余选项的拖拽距离,每次释放之后都需要刷新
renderDraggable()
可拖拽元素
renderOptions()
所有的固定选项