進(jìn)度條(Progress)

2024-01-25 13:15 更新

Progress是進(jìn)度條顯示組件,顯示內(nèi)容通常為某次目標(biāo)操作的當(dāng)前進(jìn)度。具體用法請參考Progress

創(chuàng)建進(jìn)度條

Progress通過調(diào)用接口來創(chuàng)建,接口調(diào)用形式如下:

  1. Progress(options: {value: number, total?: number, type?: ProgressType})

該接口用于創(chuàng)建type樣式的進(jìn)度條,其中value用于設(shè)置初始進(jìn)度值,total用于設(shè)置進(jìn)度總長度,type決定Progress樣式。

  1. Progress({ value: 24, total: 100, type: ProgressType.Linear }) // 創(chuàng)建一個進(jìn)度總長為100,初始進(jìn)度值為24的線性進(jìn)度條

設(shè)置進(jìn)度條樣式

Progress有5種可選類型,在創(chuàng)建時通過設(shè)置ProgressType枚舉類型給type可選項指定Progress類型。其分別為:ProgressType.Linear(線性樣式)、 ProgressType.Ring(環(huán)形無刻度樣式)、ProgressType.ScaleRing(環(huán)形有刻度樣式)、ProgressType.Eclipse(圓形樣式)和ProgressType.Capsule(膠囊樣式)。

  • 線性樣式進(jìn)度條(默認(rèn)類型)
    說明

    從API version9開始,組件高度大于寬度的時候自適應(yīng)垂直顯示,相等時仍然保持水平顯示。

    1. Progress({ value: 20, total: 100, type: ProgressType.Linear }).width(200).height(50)
    2. Progress({ value: 20, total: 100, type: ProgressType.Linear }).width(50).height(200)

  • 環(huán)形無刻度樣式進(jìn)度條
    1. // 從左往右,1號環(huán)形進(jìn)度條,默認(rèn)前景色為藍(lán)色,默認(rèn)strokeWidth進(jìn)度條寬度為2.0vp
    2. Progress({ value: 40, total: 150, type: ProgressType.Ring }).width(100).height(100)
    3. // 從左往右,2號環(huán)形進(jìn)度條
    4. Progress({ value: 40, total: 150, type: ProgressType.Ring }).width(100).height(100)
    5. .color(Color.Grey) // 進(jìn)度條前景色為灰色
    6. .style({ strokeWidth: 15}) // 設(shè)置strokeWidth進(jìn)度條寬度為15.0vp

  • 環(huán)形有刻度樣式進(jìn)度條
    1. Progress({ value: 20, total: 150, type: ProgressType.ScaleRing }).width(100).height(100)
    2. .backgroundColor(Color.Black)
    3. .style({ scaleCount: 20, scaleWidth: 5 }) // 設(shè)置環(huán)形有刻度進(jìn)度條總刻度數(shù)為20,刻度寬度為5vp
    4. Progress({ value: 20, total: 150, type: ProgressType.ScaleRing }).width(100).height(100)
    5. .backgroundColor(Color.Black)
    6. .style({ strokeWidth: 15, scaleCount: 20, scaleWidth: 5 }) // 設(shè)置環(huán)形有刻度進(jìn)度條寬度15,總刻度數(shù)為20,刻度寬度為5vp
    7. Progress({ value: 20, total: 150, type: ProgressType.ScaleRing }).width(100).height(100)
    8. .backgroundColor(Color.Black)
    9. .style({ strokeWidth: 15, scaleCount: 20, scaleWidth: 3 }) // 設(shè)置環(huán)形有刻度進(jìn)度條寬度15,總刻度數(shù)為20,刻度寬度為3vp

  • 圓形樣式進(jìn)度條
    1. // 從左往右,1號圓形進(jìn)度條,默認(rèn)前景色為藍(lán)色
    2. Progress({ value: 10, total: 150, type: ProgressType.Eclipse }).width(100).height(100)
    3. // 從左往右,2號圓形進(jìn)度條,指定前景色為灰色
    4. Progress({ value: 20, total: 150, type: ProgressType.Eclipse }).color(Color.Grey).width(100).height(100)

  • 膠囊樣式進(jìn)度條
    說明

    1、頭尾兩端圓弧處的進(jìn)度展示效果與ProgressType.Eclipse樣式相同;

    2、中段處的進(jìn)度展示效果為矩形狀長條,與ProgressType.Linear線性樣式相似;

    3、組件高度大于寬度的時候自適應(yīng)垂直顯示。

    1. Progress({ value: 10, total: 150, type: ProgressType.Capsule }).width(100).height(50)
    2. Progress({ value: 20, total: 150, type: ProgressType.Capsule }).width(50).height(100).color(Color.Grey)
    3. Progress({ value: 50, total: 150, type: ProgressType.Capsule }).width(50).height(100).backgroundColor(Color.Black)

場景示例

更新當(dāng)前進(jìn)度值,如應(yīng)用安裝進(jìn)度條。可通過點擊Button增加progressValue,.value()屬性將progressValue設(shè)置給Progress組件,進(jìn)度條組件即會觸發(fā)刷新,更新當(dāng)前進(jìn)度。
  1. @Entry
  2. @Component
  3. struct ProgressCase1 {
  4. @State progressValue: number = 0 // 設(shè)置進(jìn)度條初始值為0
  5. build() {
  6. Column() {
  7. Column() {
  8. Progress({value:0, total:100, type:ProgressType.Capsule}).width(200).height(50)
  9. .style({strokeWidth:50}).value(this.progressValue)
  10. Row().width('100%').height(5)
  11. Button("進(jìn)度條+5")
  12. .onClick(()=>{
  13. this.progressValue += 5
  14. if (this.progressValue > 100){
  15. this.progressValue = 0
  16. }
  17. })
  18. }
  19. }.width('100%').height('100%')
  20. }
  21. }

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號