【HarmonyOS 5】鴻蒙中進度條的使用詳解
##鴻蒙開發能力 ##HarmonyOS SDK應用服務##鴻蒙金融類應用 (金融理財#
一、HarmonyOS中Progress進度條的類型

HarmonyOS的ArkUI框架為開發者提供了多種類型的進度條,每種類型都有其獨特的樣式,以滿足不同的設計需求。以下是幾種常見的進度條類型:
- 線性進度條(Linear) :這是最常見的進度條樣式,以直線的形式展示進度。從API version 9開始,當組件高度大于寬度時,它會自適應垂直顯示;當高度和寬度相等時,保持水平顯示。
- 環形無刻度進度條(Ring) :這種進度條呈環形,通過環形圓環的逐漸填充來顯示進度,默認前景色為藍色,默認strokeWidth進度條寬度為2.0vp。
- 環形有刻度進度條(ScaleRing) :它顯示類似時鐘刻度形式的進度展示效果。在頭尾兩端圓弧處的進度展示效果與圓形樣式(Eclipse)相同,中段處的進度展示效果為矩形狀長條,與線性樣式相似。從API version 9開始,當刻度外圈出現重疊時,它會自動轉換為環形無刻度進度條。
- 橢圓形進度條(Eclipse) :顯示類似月圓月缺的進度展示效果,從月牙逐漸變化至滿月。
- 膠囊進度條(Capsule) :頭尾兩端圓弧處的進度展示效果與橢圓形樣式(Eclipse)相同,中段處的進度展示效果與線性樣式(Linear)相同。當高度大于寬度時,它會自適應垂直顯示。
三、使用ArkTS創建和設置進度條
(一)創建進度條
在ArkTS中,我們通過調用Progress接口來創建進度條。以下是創建進度條的基本語法:
Progress({ value: number, total?: number, type?: ProgressType })
(二)設置進度條樣式
我們可以在創建進度條時,通過設置ProgressType枚舉類型給type可選項指定不同的進度條類型,從而實現多樣化的樣式。以下是不同類型進度條的設置示例:
- 線性進度條 :
Progress({ value: 50, total: 100, type: ProgressType.Linear })
- 環形無刻度進度條 :
Progress({ value: 30, total: 100, type: ProgressType.Ring })
- 環形有刻度進度條 :
Progress({ value: 70, total: 100, type: ProgressType.ScaleRing })
- 橢圓形進度條 :
Progress({ value: 10, total: 100, type: ProgressType.Eclipse })
- 膠囊進度條 :
Progress({ value: 45, total: 100, type: ProgressType.Capsule })
(三)動態更新進度
進度條的關鍵功能之一是能夠在任務執行過程中動態更新進度,以反映任務的實時進展。
在鴻蒙Progress組件中通過value和total兩個屬性來實現進度條得更新效果,源碼如下:
其中,value用于設置初始進度值,total用于設置進度總長度,type決定Progress的樣式。如果不設置type,默認使用線性進度條樣式。
Progress({ value: 24, total: 100, type: ProgressType.Linear })
import prompt from '@ohos.prompt';
@Entry
@Component
struct DownloadProgressBar {
// 下載進度,初始值為 0
@State progress: number = 0;
// 下載狀態提示信息
@State status: string = '等待下載';
// 模擬下載的函數
startDownload() {
// 模擬下載過程,使用 setInterval 定時更新進度
let intervalId = setInterval(() = > {
this.progress += 10;
if (this.progress >= 100) {
this.status = '下載完成';
clearInterval(intervalId);
prompt.showToast({ message: '下載已完成' });
} else {
this.status = `下載中,進度: ${this.progress}%`;
}
}, 1000);
}
build() {
Column({ space: 20 }) {
Text('下載進度條示例')
.fontSize(20)
.fontWeight(FontWeight.Bold);
Progress({ value: this.progress, total: 100 })
.width('90%')
.height(20);
Text(this.status)
.fontSize(16);
Button('開始下載')
.width('60%')
.height(40)
.backgroundColor(Color.Blue)
.fontColor(Color.White)
.onClick(() = > {
this.startDownload();
});
}
.width('100%')
.height('100%')
.alignItems(HorizontalAlign.Center)
.justifyContent(FlexAlign.Center);
}
}
審核編輯 黃宇
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
鴻蒙
+關注
關注
60文章
2963瀏覽量
45882 -
HarmonyOS
+關注
關注
80文章
2153瀏覽量
36037
發布評論請先 登錄
相關推薦
熱點推薦
鴻蒙原生應用/元服務開發-發布進度條類型通知
進度條通知也是常見的通知類型,主要應用于文件下載、事務處理進度顯示。HarmonyOS提供了進度條模板,發布通知應用設置好進度條模板的屬性值
發表于 01-04 17:20
labview進度條
我用labview2017做了一個文件解壓和復制的vi,解壓過程中不知道真實的解壓進度,怎么才能做一個真實的進度條,要真是的,不是自己規定的,求助!!!
發表于 04-26 09:10
怎么設置進度條?
RT!比如 我創建一個隨意長度的進度條然后我知道一個文件的大小 當把這個文件里的數據讀完后進度條也跟著完畢請問那位弄過?我搞了下隨意創建 有問題有事候進度條會超出 邊框那么一點點!
發表于 08-22 04:35
HarmonyOS實戰——ProgressBar進度條組件基本使用
【鴻蒙專欄,從入門到實戰系列】:https://bbs.elecfans.com/user/4697363/posts/1. ProgressBar進度條組件組件說明:常見app中,下載進度條
發表于 09-22 23:31
供開發鴻蒙應用使用的ButtonProgressBar下載按鈕進度條
該三方開源庫從github fork過來,主要將底層接口調用的實現修改成鴻蒙接口的實現,將三方庫鴻蒙化,供開發鴻蒙應用的開發者使用。 ButtonProgressBar一個下載按鈕進度條
發表于 03-18 14:37
?1次下載
將底層接口調用實現成鴻蒙接口的循環音樂進度條
差異:由于鴻蒙的Path接口沒有提供approximate方法,導致動畫差值器中Path差值器無法使用 這個圓形進度條是為需要漂亮音樂進度條的音樂播放器設計和制造的。 限制 ScaleType 始終為 ScaleMode.CLI
發表于 03-24 13:51
?3次下載
【AWTK使用經驗】如何設計立體電池進度條?
AWTK是基于C語言開發的跨平臺GUI框架。《AWTK使用經驗》系列文章將介紹開發AWTK過程中一些常見問題與解決方案,例如:如何加載外部資源?如何設計自定義進度條?這些都會在系列文章進行解答
【HarmonyOS 5】鴻蒙中的UIAbility詳解(三)
【HarmonyOS 5】鴻蒙中的UIAbility詳解(三) ##鴻蒙開發能力 ##HarmonyOS
【HarmonyOS 5】鴻蒙中進度條的使用詳解
評論