3.4、HarmonyOS Next 进度条(Progress)

Progress 是进度条显示组件,显示内容通常为某次目标操作的当前进度。具体用法请参考

创建进度条

Progress 通过调用接口来创建,接口调用形式如下

ts 复制代码
Progress(options: {value: number, total?: number, type?: ProgressType})

该接口用于创建 type 样式的进度条,其中 value 用于设置初始进度值,total 用于设置进度总长度,type 决定 Progress 样式。

ts 复制代码
Progress({ value: 24, total: 100, type: ProgressType.Linear }) // 创建一个进度总长为100,初始进度值为24的线性进度条

设置进度条样式

Progress 有5种可选类型,在创建时通过设置 ProgressType 枚举类型给type可选项指定 Progress 类型。其分别为:ProgressType.Linear(线性样式)、 ProgressType.Ring(环形无刻度样式)、ProgressType.ScaleRing(环形有刻度样式)、ProgressType.Eclipse(圆形样式)和ProgressType.Capsule(胶囊样式)。

  • 线性样式进度条(默认类型)
ts 复制代码
Row() {
    Progress({ value: 20, total: 100, type: ProgressType.Linear }).width(200).height(50).margin({left: 10})
    Progress({ value: 20, total: 100, type: ProgressType.Linear }).width(50).height(200).margin({left: 10})
  }
  • 环形无刻度样式进度条
ts 复制代码
Row() {
   // 从左往右,1号环形进度条,默认前景色为蓝色,默认strokeWidth进度条宽度为2.0vp
   Progress({ value: 40, total: 150, type: ProgressType.Ring }).width(100).height(100).margin({left: 10, top: 10})
   // 从左往右,2号环形进度条
   Progress({ value: 40, total: 150, type: ProgressType.Ring }).width(100).height(100)
     .color(Color.Grey)    // 进度条前景色为灰色
     .style({ strokeWidth: 15})    // 设置strokeWidth进度条宽度为15.0vp
     .margin({left: 10, top: 10})
}
  • 环形有刻度样式进度条
ts 复制代码
Row() {
   Progress({ value: 20, total: 150, type: ProgressType.ScaleRing }).width(100).height(100)
     .backgroundColor(Color.Black)
     .style({ scaleCount: 20, scaleWidth: 5 })    // 设置环形有刻度进度条总刻度数为20,刻度宽度为5vp
     .margin({left: 10, top: 10})
   Progress({ value: 20, total: 150, type: ProgressType.ScaleRing }).width(100).height(100)
     .backgroundColor(Color.Black)
     .style({ strokeWidth: 15, scaleCount: 20, scaleWidth: 5 })    // 设置环形有刻度进度条宽度15,总刻度数为20,刻度宽度为5vp
     .margin({left: 10, top: 10})
   Progress({ value: 20, total: 150, type: ProgressType.ScaleRing }).width(100).height(100)
     .backgroundColor(Color.Black)
     .style({ strokeWidth: 15, scaleCount: 20, scaleWidth: 3 })    // 设置环形有刻度进度条宽度15,总刻度数为20,刻度宽度为3vp
     .margin({left: 10, top: 10})
 }
  • 圆形样式进度条
ts 复制代码
// 从左往右,1号圆形进度条,默认前景色为蓝色
Progress({ value: 10, total: 150, type: ProgressType.Eclipse }).width(100).height(100)
// 从左往右,2号圆形进度条,指定前景色为灰色
Progress({ value: 20, total: 150, type: ProgressType.Eclipse }).color(Color.Grey).width(100).height(100)
  • 胶囊样式进度条
ts 复制代码
 Row() {
     Progress({ value: 10, total: 150, type: ProgressType.Capsule }).width(100).height(50).margin({left: 10, top: 10})
     Progress({ value: 20, total: 150, type: ProgressType.Capsule }).width(50).height(100).color(Color.Grey).margin({left: 10, top: 10})
     Progress({ value: 50, total: 150, type: ProgressType.Capsule }).width(50).height(100).backgroundColor(Color.Black).margin({left: 10, top: 10})
}

上一篇 3.3、切换按钮(Toggle) 下一篇 3.5、文本显示(Text/Span)

相关推荐
Math_teacher_fan4 小时前
Flutter 跨平台开发实战:鸿蒙与音乐律动艺术(六)、Lissajous 利萨茹曲线:频率耦合的轨迹艺术
flutter·ui·数学建模·华为·harmonyos·鸿蒙系统
xmdy58665 小时前
Flutter+开源鸿蒙实战|智安盾电商溯源平台Day3 溯源查询逻辑+鸿蒙网络请求适配
flutter·开源·harmonyos
maaath6 小时前
【maaath】Flutter 跨平台日历日程应用开发实战
flutter·华为·harmonyos
LeesonWong7 小时前
架构困境与四层结构化设计
harmonyos
梦想不只是梦与想8 小时前
鸿蒙 应用市场更新功能:版本检测与更新提醒
harmonyos·鸿蒙·版本更新
xmdy58668 小时前
Flutter+开源鸿蒙实战|智安盾电商溯源平台Day2 首页+核心入口UI开发(鸿蒙多端适配)
flutter·开源·harmonyos
nashane12 小时前
HarmonyOS 6学习:HAR包与HSP包的选择与优化指南
学习·华为·harmonyos·harmonyos 5
全栈若城12 小时前
自定义 TabBar 实战:浮动标签栏与舵式标签栏
harmonyos·harmonyos6·三方库开发
maaath13 小时前
【maaath】Flutter for OpenHarmony 学习答题应用实战开发
学习·flutter·华为·harmonyos
李游Leo13 小时前
别再拼 JSON 了:HarmonyOS UDMF 跨应用数据流转实践
harmonyos