W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
滑動條組件,通常用于快速調(diào)節(jié)設(shè)置值,如音量調(diào)節(jié)、亮度調(diào)節(jié)等應(yīng)用場景。
該組件從API Version 7開始支持。后續(xù)版本如有新增內(nèi)容,則采用上角標(biāo)單獨標(biāo)記該內(nèi)容的起始版本。
Slider(options?: {value?: number, min?: number, max?: number, step?: number, style?: SliderStyle, direction?: Axis, reverse?: boolean})
從API version 9開始,該接口支持在ArkTS卡片中使用。
參數(shù):
參數(shù)名 | 參數(shù)類型 | 必填 | 參數(shù)描述 |
---|---|---|---|
value | number | 否 | 當(dāng)前進(jìn)度值。 默認(rèn)值:參數(shù)min |
min | number | 否 | 設(shè)置最小值。 默認(rèn)值:0 |
max | number | 否 | 設(shè)置最大值。 默認(rèn)值:100 說明: min >= max異常情況,min取默認(rèn)值0,max取默認(rèn)值100。 value不在[min, max]范圍之內(nèi),取min/max,靠近min取min,靠近max取max。 |
step | number | 否 | 設(shè)置Slider滑動步長。 默認(rèn)值:1 取值范圍:[0.01, max] 說明: 設(shè)置小于0或百分比的值時,按默認(rèn)值顯示。 |
style | SliderStyle | 否 | 設(shè)置Slider的滑塊與滑軌顯示樣式。 默認(rèn)值:SliderStyle.OutSet |
direction8+ | 否 | 設(shè)置滑動條滑動方向為水平或豎直方向。 默認(rèn)值:Axis.Horizontal | |
reverse8+ | boolean | 否 | 設(shè)置滑動條取值范圍是否反向,橫向Slider默認(rèn)為從左往右滑動,豎向Slider默認(rèn)為從上往下滑動。 默認(rèn)值:false |
支持除觸摸熱區(qū)以外的通用屬性設(shè)置。
名稱 | 參數(shù)類型 | 描述 |
---|---|---|
blockColor | 設(shè)置滑塊的顏色。 從API version 9開始,該接口支持在ArkTS卡片中使用。 | |
trackColor | 設(shè)置滑軌的背景顏色。 從API version 9開始,該接口支持在ArkTS卡片中使用。 | |
selectedColor | 設(shè)置滑軌的已滑動部分顏色。 從API version 9開始,該接口支持在ArkTS卡片中使用。 | |
showSteps | boolean | 設(shè)置當(dāng)前是否顯示步長刻度值。 默認(rèn)值:false 從API version 9開始,該接口支持在ArkTS卡片中使用。 |
showTips | boolean | 設(shè)置滑動時是否顯示百分比氣泡提示。 默認(rèn)值:false 從API version 9開始,該接口支持在ArkTS卡片中使用。 說明: 當(dāng)direction的屬性值為Axis.Horizontal時,tip顯示在滑塊正上方。值為Axis.Vertical時,tip顯示在滑塊正左邊。 tip的繪制區(qū)域為Slider自身節(jié)點的overlay。 Slider不設(shè)置邊距,或者邊距比較小時,tip會被截斷。 |
trackThickness | 設(shè)置滑軌的粗細(xì)。 默認(rèn)值:當(dāng)參數(shù)style的值設(shè)置SliderStyle.OutSet 時為 4.0vp,SliderStyle.InSet時為20.0vp。 從APIversion9開始,該接口支持在ArkTS卡片中使用。 說明: 設(shè)置為小于0的值時,按默認(rèn)值顯示。 |
通用事件僅支持掛載卸載事件:OnAppear,OnDisAppear。
名稱 | 功能描述 |
---|---|
onChange(callback: (value: number, mode: SliderChangeMode) => void) | Slider滑動時觸發(fā)事件回調(diào)。 value:當(dāng)前滑動進(jìn)度值。若返回值有小數(shù),可使用number.toFixed()方法將數(shù)據(jù)處理為預(yù)期的精度。 mode:拖動狀態(tài)。 從API version 9開始,該接口支持在ArkTS卡片中使用。 說明:Begin和End狀態(tài)當(dāng)手勢點擊時都會觸發(fā),Moving和Click狀態(tài)當(dāng)value值發(fā)生變換時觸發(fā)。 當(dāng)連貫動作為拖動動作時,不觸發(fā)Click狀態(tài)。 value值的變化范圍為對應(yīng)步長steps數(shù)組。 |
從API version 9開始,該接口支持在ArkTS卡片中使用。
名稱 | 值 | 描述 |
---|---|---|
Begin | 0 | 手勢/鼠標(biāo)接觸或者按下滑塊。 |
Moving | 1 | 正在拖動滑塊過程中。 |
End | 2 | 手勢/鼠標(biāo)離開滑塊。 |
Click | 3 | 點擊滑動條使滑塊位置移動。 |
- // xxx.ets
- @Entry
- @Component
- struct SliderExample {
- @State outSetValueOne: number = 40
- @State inSetValueOne: number = 40
- @State outSetValueTwo: number = 40
- @State inSetValueTwo: number = 40
- @State vOutSetValueOne: number = 40
- @State vInSetValueOne: number = 40
- @State vOutSetValueTwo: number = 40
- @State vInSetValueTwo: number = 40
- build() {
- Column({ space: 8 }) {
- Text('outset slider').fontSize(9).fontColor(0xCCCCCC).width('90%').margin(15)
- Row() {
- Slider({
- value: this.outSetValueOne,
- min: 0,
- max: 100,
- style: SliderStyle.OutSet
- })
- .showTips(true)
- .onChange((value: number, mode: SliderChangeMode) => {
- this.outSetValueOne = value
- console.info('value:' + value + 'mode:' + mode.toString())
- })
- // toFixed(0)將滑動條返回值處理為整數(shù)精度
- Text(this.outSetValueOne.toFixed(0)).fontSize(12)
- }
- .width('80%')
- Row() {
- Slider({
- value: this.outSetValueTwo,
- step: 10,
- style: SliderStyle.OutSet
- })
- .showSteps(true)
- .onChange((value: number, mode: SliderChangeMode) => {
- this.outSetValueTwo = value
- console.info('value:' + value + 'mode:' + mode.toString())
- })
- Text(this.outSetValueTwo.toFixed(0)).fontSize(12)
- }
- .width('80%')
- Text('inset slider').fontSize(9).fontColor(0xCCCCCC).width('90%').margin(15)
- Row() {
- Slider({
- value: this.inSetValueOne,
- min: 0,
- max: 100,
- style: SliderStyle.InSet
- })
- .blockColor('#191970')
- .trackColor('#ADD8E6')
- .selectedColor('#4169E1')
- .showTips(true)
- .onChange((value: number, mode: SliderChangeMode) => {
- this.inSetValueOne = value
- console.info('value:' + value + 'mode:' + mode.toString())
- })
- Text(this.inSetValueOne.toFixed(0)).fontSize(12)
- }
- .width('80%')
- Row() {
- Slider({
- value: this.inSetValueTwo,
- step: 10,
- style: SliderStyle.InSet
- })
- .blockColor('#191970')
- .trackColor('#ADD8E6')
- .selectedColor('#4169E1')
- .showSteps(true)
- .onChange((value: number, mode: SliderChangeMode) => {
- this.inSetValueTwo = value
- console.info('value:' + value + 'mode:' + mode.toString())
- })
- Text(this.inSetValueTwo.toFixed(0)).fontSize(12)
- }
- .width('80%')
- Row() {
- Column() {
- Text('vertical outset slider').fontSize(9).fontColor(0xCCCCCC).width('50%').margin(15)
- Row() {
- Slider({
- value: this.vOutSetValueOne,
- style: SliderStyle.OutSet,
- direction: Axis.Vertical
- })
- .blockColor('#191970')
- .trackColor('#ADD8E6')
- .selectedColor('#4169E1')
- .showTips(true)
- .onChange((value: number, mode: SliderChangeMode) => {
- this.vOutSetValueOne = value
- console.info('value:' + value + 'mode:' + mode.toString())
- })
- Slider({
- value: this.vOutSetValueTwo,
- step: 10,
- style: SliderStyle.OutSet,
- direction: Axis.Vertical
- })
- .blockColor('#191970')
- .trackColor('#ADD8E6')
- .selectedColor('#4169E1')
- .showSteps(true)
- .onChange((value: number, mode: SliderChangeMode) => {
- this.vOutSetValueTwo = value
- console.info('value:' + value + 'mode:' + mode.toString())
- })
- }
- }.width('50%').height(300)
- Column() {
- Text('vertical inset slider').fontSize(9).fontColor(0xCCCCCC).width('50%').margin(15)
- Row() {
- Slider({
- value: this.vInSetValueOne,
- style: SliderStyle.InSet,
- direction: Axis.Vertical,
- reverse: true // 豎向的Slider默認(rèn)是上端是min值,下端是max值,因此想要從下往上滑動,需要設(shè)置reverse為true
- })
- .showTips(true)
- .onChange((value: number, mode: SliderChangeMode) => {
- this.vInSetValueOne = value
- console.info('value:' + value + 'mode:' + mode.toString())
- })
- Slider({
- value: this.vInSetValueTwo,
- step: 10,
- style: SliderStyle.InSet,
- direction: Axis.Vertical,
- reverse: true
- })
- .showSteps(true)
- .onChange((value: number, mode: SliderChangeMode) => {
- this.vInSetValueTwo = value
- console.info('value:' + value + 'mode:' + mode.toString())
- })
- }
- }.width('50%').height(300)
- }
- }.width('100%')
- }
- }
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: