Progress
進(jìn)度條組件,用于顯示內(nèi)容加載或操作處理等進(jìn)度。
說明:
開發(fā)前請熟悉鴻蒙開發(fā)指導(dǎo)文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
該組件從API version 7開始支持。后續(xù)版本如有新增內(nèi)容,則采用上角標(biāo)單獨(dú)標(biāo)記該內(nèi)容的起始版本。
子組件
無
接口
Progress(options: {value: number, total?: number, type?: ProgressType})
創(chuàng)建進(jìn)度組件,用于顯示內(nèi)容加載或操作處理進(jìn)度。
從API version 9開始,該接口支持在ArkTS卡片中使用。
參數(shù)名 | 參數(shù)類型 | 必填 | 參數(shù)描述 |
---|---|---|---|
value | number | 是 | 指定當(dāng)前進(jìn)度值。設(shè)置小于0的數(shù)值時置為0,設(shè)置大于total的數(shù)值時置為total。 從API version 9開始,該接口支持在ArkTS卡片中使用。 |
total | number | 否 | 指定進(jìn)度總長。 默認(rèn)值:100 從API version 9開始,該接口支持在ArkTS卡片中使用。 |
type8+ | [ProgressType] | 否 | 指定進(jìn)度條類型。 默認(rèn)值:ProgressType.Linear 從API version 9開始,該接口支持在ArkTS卡片中使用。 |
ProgressType枚舉說明
從API version 9開始,該接口支持在ArkTS卡片中使用。
名稱 | 描述 |
---|---|
Linear | 線性樣式。從API version9開始,高度大于寬度的時候自適應(yīng)垂直顯示。 |
Ring8+ | 環(huán)形無刻度樣式,環(huán)形圓環(huán)逐漸顯示至完全填充效果。 |
Eclipse8+ | 圓形樣式,顯示類似月圓月缺的進(jìn)度展示效果,從月牙逐漸變化至滿月。 |
ScaleRing8+ | 環(huán)形有刻度樣式,顯示類似時鐘刻度形式的進(jìn)度展示效果。從API version9開始,刻度外圈出現(xiàn)重疊的時候自動轉(zhuǎn)換為環(huán)形無刻度進(jìn)度條。 |
Capsule8+ | 膠囊樣式,頭尾兩端圓弧處的進(jìn)度展示效果與Eclipse相同;中段處的進(jìn)度展示效果與Linear相同。高度大于寬度的時候自適應(yīng)垂直顯示。 |
屬性
除支持[通用屬性]外,還支持以下屬性:
名稱 | 參數(shù)類型 | 描述 |
---|---|---|
value | number | 設(shè)置當(dāng)前進(jìn)度值。設(shè)置小于0的數(shù)值時置為0,設(shè)置大于total的數(shù)值時置為total。非法數(shù)值不生效。 從API version 9開始,該接口支持在ArkTS卡片中使用。 |
color | [ResourceColor] | [LinearGradient10+] |
backgroundColor | [ResourceColor] | 設(shè)置進(jìn)度條底色。 默認(rèn)值(API version 9):'#19182431' 默認(rèn)值(API version 10): - Capsule:'#33ffffff' - Ring:'#08182431' - 其他樣式:'#19182431' 從API version 9開始,該接口支持在ArkTS卡片中使用。**說明:**當(dāng)設(shè)置[通用屬性backgroundColor]時,生效的是進(jìn)度條的底色,而不是整個Progress組件的背景色。 |
style8+ | [ProgressStyleOptions] | [CapsuleStyleOptions10+] |
ProgressStyleOptions
名稱 | 參數(shù)類型 | 必填 | 描述 |
---|---|---|---|
strokeWidth | [Length] | 否 | 設(shè)置進(jìn)度條寬度(不支持百分比設(shè)置)。 默認(rèn)值:4.0vp |
scaleCount | number | 否 | 設(shè)置環(huán)形進(jìn)度條總刻度數(shù)。 默認(rèn)值:120 |
scaleWidth | [Length] | 否 | 設(shè)置環(huán)形進(jìn)度條刻度粗細(xì)(不支持百分比設(shè)置),刻度粗細(xì)大于進(jìn)度條寬度時,為系統(tǒng)默認(rèn)粗細(xì)。 默認(rèn)值:2.0vp |
enableSmoothEffect10+ | boolean | 否 | 進(jìn)度平滑動效的開關(guān)。開啟平滑動效后設(shè)置進(jìn)度,進(jìn)度會從當(dāng)前值漸變至設(shè)定值,否則進(jìn)度從當(dāng)前值突變至設(shè)定值。 默認(rèn)值:true |
CapsuleStyleOptions10+
名稱 | 參數(shù)類型 | 必填 | 描述 |
---|---|---|---|
borderColor | [ResourceColor] | 否 | 內(nèi)描邊顏色。 默認(rèn)值:'#33006cde' |
borderWidth | [Length] | 否 | 內(nèi)描邊寬度(不支持百分比設(shè)置)。 默認(rèn)值:1vp |
content | string | 否 | 文本內(nèi)容,應(yīng)用可自定義。 |
font | [Font] | 否 | 文本樣式。 默認(rèn)值: - 文本大小(不支持百分比設(shè)置):12fp 其他文本參數(shù)跟隨text組件的主題值。 |
fontColor | [ResourceColor] | 否 | 文本顏色。 默認(rèn)值:'#ff182431' |
enableScanEffect | boolean | 否 | 掃光效果的開關(guān)。 默認(rèn)值:false |
showDefaultPercentage | boolean | 否 | 顯示百分比文本的開關(guān),開啟后會在進(jìn)度條上顯示當(dāng)前進(jìn)度的百分比。設(shè)置了content屬性時該屬性不生效。 默認(rèn)值:false |
enableSmoothEffect | boolean | 否 | 進(jìn)度平滑動效的開關(guān)。開啟平滑動效后設(shè)置進(jìn)度,進(jìn)度會從當(dāng)前值漸變至設(shè)定值,否則進(jìn)度從當(dāng)前值突變至設(shè)定值。 默認(rèn)值:true |
RingStyleOptions10+
名稱 | 參數(shù)類型 | 必填 | 描述 |
---|---|---|---|
strokeWidth | [Length] | 否 | 設(shè)置進(jìn)度條寬度(不支持百分比設(shè)置),寬度大于等于半徑時,默認(rèn)修改寬度至半徑值的二分之一。 默認(rèn)值:4.0vp |
shadow | boolean | 否 | 進(jìn)度條陰影開關(guān)。 默認(rèn)值:false |
status | [ProgressStatus10+] | 否 | 進(jìn)度條狀態(tài),當(dāng)設(shè)置為LOADING時會開啟檢查更新動效,此時設(shè)置進(jìn)度值不生效。當(dāng)從LOADING設(shè)置為PROGRESSING,檢查更新動效會執(zhí)行到終點(diǎn)再停止。 默認(rèn)值: ProgressStatus.PROGRESSING |
enableScanEffect | boolean | 否 | 進(jìn)度條掃光效果的開關(guān)。 默認(rèn)值: false |
enableSmoothEffect | boolean | 否 | 進(jìn)度平滑動效的開關(guān)。開啟平滑動效后設(shè)置進(jìn)度,進(jìn)度會從當(dāng)前值漸變至設(shè)定值,否則進(jìn)度從當(dāng)前值突變至設(shè)定值。 默認(rèn)值:true |
LinearStyleOptions10+
名稱 | 參數(shù)類型 | 必填 | 描述 |
---|---|---|---|
strokeWidth | [Length] | 否 | 設(shè)置進(jìn)度條寬度(不支持百分比設(shè)置)。 默認(rèn)值:4.0vp |
strokeRadius | [PX] | [VP] | [LPX] |
enableScanEffect | boolean | 否 | 進(jìn)度條掃光效果的開關(guān)。 默認(rèn)值: false |
enableSmoothEffect | boolean | 否 | 進(jìn)度平滑動效的開關(guān)。開啟平滑動效后設(shè)置進(jìn)度,進(jìn)度會從當(dāng)前值漸變至設(shè)定值,否則進(jìn)度從當(dāng)前值突變至設(shè)定值。 默認(rèn)值:true |
ScaleRingStyleOptions10+
名稱 | 參數(shù)類型 | 必填 | 描述 |
---|---|---|---|
strokeWidth | [Length] | 否 | 設(shè)置進(jìn)度條寬度(不支持百分比設(shè)置)。 默認(rèn)值:4.0vp |
scaleCount | number | 否 | 設(shè)置環(huán)形進(jìn)度條總刻度數(shù)。 默認(rèn)值:120 |
scaleWidth | [Length] | 否 | 設(shè)置環(huán)形進(jìn)度條刻度粗細(xì)(不支持百分比設(shè)置),刻度粗細(xì)大于進(jìn)度條寬度時,為系統(tǒng)默認(rèn)粗細(xì)。 默認(rèn)值:2.0vp |
enableSmoothEffect | boolean | 否 | 進(jìn)度平滑動效的開關(guān)。開啟平滑動效后設(shè)置進(jìn)度,進(jìn)度會從當(dāng)前值漸變至設(shè)定值,否則進(jìn)度從當(dāng)前值突變至設(shè)定值。 默認(rèn)值:true |
ProgressStatus10+枚舉說明
名稱 | 描述 |
---|---|
LOADING | 加載中。 |
PROGRESSING | 進(jìn)度更新中。 |
事件
支持[通用事件]。HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿
示例
示例1
各進(jìn)度條基礎(chǔ)屬性效果
// xxx.ets
@Entry
@Component
struct ProgressExample {
build() {
Column({ space: 15 }) {
Text('Linear Progress').fontSize(9).fontColor(0xCCCCCC).width('90%')
Progress({ value: 10, type: ProgressType.Linear }).width(200)
Progress({ value: 20, total: 150, type: ProgressType.Linear }).color(Color.Grey).value(50).width(200)
Text('Eclipse Progress').fontSize(9).fontColor(0xCCCCCC).width('90%')
Row({ space: 40 }) {
Progress({ value: 10, type: ProgressType.Eclipse }).width(100)
Progress({ value: 20, total: 150, type: ProgressType.Eclipse }).color(Color.Grey).value(50).width(100)
}
Text('ScaleRing Progress').fontSize(9).fontColor(0xCCCCCC).width('90%')
Row({ space: 40 }) {
Progress({ value: 10, type: ProgressType.ScaleRing }).width(100)
Progress({ value: 20, total: 150, type: ProgressType.ScaleRing })
.color(Color.Grey).value(50).width(100)
.style({ strokeWidth: 15, scaleCount: 15, scaleWidth: 5 })
}
// scaleCount和scaleWidth效果對比
Row({ space: 40 }) {
Progress({ value: 20, total: 150, type: ProgressType.ScaleRing })
.color(Color.Grey).value(50).width(100)
.style({ strokeWidth: 20, scaleCount: 20, scaleWidth: 5 })
Progress({ value: 20, total: 150, type: ProgressType.ScaleRing })
.color(Color.Grey).value(50).width(100)
.style({ strokeWidth: 20, scaleCount: 30, scaleWidth: 3 })
}
Text('Ring Progress').fontSize(9).fontColor(0xCCCCCC).width('90%')
Row({ space: 40 }) {
Progress({ value: 10, type: ProgressType.Ring }).width(100)
Progress({ value: 20, total: 150, type: ProgressType.Ring })
.color(Color.Grey).value(50).width(100)
.style({ strokeWidth: 20 })
}
Text('Capsule Progress').fontSize(9).fontColor(0xCCCCCC).width('90%')
Row({ space: 40 }) {
Progress({ value: 10, type: ProgressType.Capsule }).width(100).height(50)
Progress({ value: 20, total: 150, type: ProgressType.Capsule })
.color(Color.Grey)
.value(50)
.width(100)
.height(50)
}
}.width('100%').margin({ top: 30 })
}
}
示例2
環(huán)形進(jìn)度條視覺屬性
@Entry
@Component
struct ProgressExample {
private gradientColor: LinearGradient = new LinearGradient([{ color: Color.Yellow, offset: 0.5 },
{ color: Color.Orange, offset: 1.0 }])
build() {
Column({ space: 15 }) {
Text('Gradient Color').fontSize(9).fontColor(0xCCCCCC).width('90%')
Progress({ value: 70, total: 100, type: ProgressType.Ring })
.width(100).style({ strokeWidth: 20 })
.color(this.gradientColor)
Text('Shadow').fontSize(9).fontColor(0xCCCCCC).width('90%')
Progress({ value: 70, total: 100, type: ProgressType.Ring })
.width(120).color(Color.Orange)
.style({ strokeWidth: 20, shadow: true })
}.width('100%').padding({ top: 5 })
}
}
示例3
環(huán)形進(jìn)度條動效
@Entry
@Component
struct ProgressExample {
private gradientColor: LinearGradient = new LinearGradient([{ color: Color.Yellow, offset: 0.5 },
{ color: Color.Orange, offset: 1.0 }])
build() {
Column({ space: 15 }) {
Text('Loading Effect').fontSize(9).fontColor(0xCCCCCC).width('90%')
Progress({ value: 0, total: 100, type: ProgressType.Ring })
.width(100).color(Color.Blue)
.style({ strokeWidth: 20, status: ProgressStatus.LOADING })
Text('Scan Effect').fontSize(9).fontColor(0xCCCCCC).width('90%')
Progress({ value: 30, total: 100, type: ProgressType.Ring })
.width(100).color(Color.Orange)
.style({ strokeWidth: 20, enableScanEffect: true })
}.width('100%').padding({ top: 5 })
}
}
示例4
膠囊形進(jìn)度條視覺屬性
@Entry
@Component
struct ProgressExample {
build() {
Column({ space: 15 }) {
Row({ space: 40 }) {
Progress({ value: 100, total: 100,type: ProgressType.Capsule }).width(100).height(50)
.style({borderColor: Color.Blue, borderWidth: 1, content: 'Installing...',
font: {size: 13, style: FontStyle.Normal}, fontColor: Color.Gray,
enableScanEffect: false, showDefaultPercentage: false})
}
}.width('100%').padding({ top: 5 })
}
}
示例5
進(jìn)度平滑動效
@Entry
@Component
struct Index {
@State value: number = 0
build() {
Column({space: 10}) {
Text('enableSmoothEffect: true').fontSize(9).fontColor(0xCCCCCC).width('90%').margin(5)
.margin({top: 20})
Progress({value: this.value, total: 100, type:ProgressType.Linear})
.style({strokeWidth: 10, enableSmoothEffect: true})
Text('enableSmoothEffect: false').fontSize(9).fontColor(0xCCCCCC).width('90%').margin(5)
Progress({value: this.value, total: 100, type:ProgressType.Linear})
.style({strokeWidth: 10, enableSmoothEffect: false})
Button('value +10').onClick(() = > {
this.value += 10
})
.width(75)
.height(15)
.fontSize(9)
}
.width('50%')
.height('100%')
.margin({left:20})
}
}
審核編輯 黃宇
-
組件
+關(guān)注
關(guān)注
1文章
512瀏覽量
17819 -
鴻蒙
+關(guān)注
關(guān)注
57文章
2347瀏覽量
42827
發(fā)布評論請先 登錄
相關(guān)推薦
評論