Slider 滑块
介绍
滑动输入条,用于在给定的范围内选择一个值。
引入
ts
import { IBestSlider } from "@ibestservices/ibest-ui";
代码演示
基础用法
点我查看代码
ts
@Entry
@Component
struct DemoPage {
@State value: number = 30
build() {
Column(){
IBestSlider({
value: $value,
onChange: (val) => {
console.log(val.toString())
}
})
}
.padding({ left: 20, right: 20 })
}
}
双滑块
点我查看代码
ts
@Entry
@Component
struct DemoPage {
@State value: [number, number] = [20, 60]
build() {
Column(){
IBestSlider({
value: $value,
onChange: (val) => {
console.log(val.toString())
}
})
}
.padding({ left: 20, right: 20 })
}
}
指定选择范围
点我查看代码
ts
@Entry
@Component
struct DemoPage {
@State value: number = 30
build() {
Column(){
IBestSlider({
value: $value,
min: -50,
max: 50,
onChange: (val) => {
console.log(val.toString())
}
})
}
.padding({ left: 20, right: 20 })
}
}
禁用
点我查看代码
ts
@Entry
@Component
struct DemoPage {
@State value: number = 30
build() {
Column(){
IBestSlider({
value: $value,
disabled: true
})
}
.padding({ left: 20, right: 20 })
}
}
指定步长
点我查看代码
ts
@Entry
@Component
struct DemoPage {
@State value: number = 30
build() {
Column(){
IBestSlider({
value: $value,
step: 10,
onChange: (val) => {
console.log(val.toString())
}
})
}
.padding({ left: 20, right: 20 })
}
}
自定义样式
点我查看代码
ts
@Entry
@Component
struct DemoPage {
@State value: number = 30
build() {
Column(){
IBestSlider({
value: $value,
barHeight: 8,
activeColor: "#ee0a24",
onChange: (val) => {
console.log(val.toString())
}
})
}
.padding({ left: 20, right: 20 })
}
}
自定义按钮
点我查看代码
ts
@Entry
@Component
struct DemoPage {
@State value: number = 30
@Builder customBtn(){
Text(this.value.toString())
.height(18)
.borderRadius(9999)
.padding({ left: 5, right: 5 })
.backgroundColor("#006AE9")
.fontColor("#FFFFFF")
.fontSize(12)
}
build() {
Column(){
IBestSlider({
value: $value,
customButton: (): void => this.customBtn(),
onChange: (val) => {
console.log(val.toString())
}
})
}
.padding({ left: 20, right: 20 })
}
}
垂直方向
TIP
通过 reverse
属性可以设置换向。
点我查看代码
ts
@Entry
@Component
struct DemoPage {
@State value: number = 30
@State value1: [number, number] = [20, 60]
build() {
Row({ space: 80 }){
Row({ space: 30 }){
IBestSlider({
value: $value,
vertical: true,
onChange: (val) => {
console.log(val.toString())
}
})
IBestSlider({
value: $value,
vertical: true,
reverse: true,
onChange: (val) => {
console.log(val.toString())
}
})
}
Row({ space: 30 }){
IBestSlider({
value: $value1,
vertical: true,
onChange: (val) => {
console.log(val.toString())
}
})
IBestSlider({
value: $value1,
vertical: true,
reverse: true,
onChange: (val) => {
console.log(val.toString())
}
})
}
}
.width(CONTAINER_SIZE.FULL)
.height(300)
.justifyContent(FlexAlign.Center)
}
}
API
@Props
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
value | 滑动条当前值,支持双向绑定 | number | [number, number] | - |
max | 最大值 | number | 100 |
min | 最小值 | number | 0 |
step | 步长 | number | 1 |
barHeight | 进度条高度 | number | string | 2 |
buttonSize | 滑块大小, 宽高一致 | number | string | 24 |
activeColor | 进度条激活态颜色 | ResourceColor | #3D8AF2 |
barBgColor | 进度条背景色 | ResourceColor | #ebedf0 |
disabled | 是否禁用 | boolean | false |
vertical | 是否垂直展示 | boolean | false |
reverse | 是否换向 | boolean | false |
customButton | 自定义滑块 | CustomBuilder | - |
buttonBgColor | 滑块背景颜色 | ResourceColor | #fff |
Events
事件名 | 说明 | 回调参数 |
---|---|---|
onChange | 进度变化且拖动结束后触发 | value: IBestSliderValue |