news 2026/9/25 1:37:15

progress-bar-cj API速查手册:MaterialModel、ComWheel全部接口一图看懂

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
progress-bar-cj API速查手册:MaterialModel、ComWheel全部接口一图看懂

progress-bar-cj API速查手册:MaterialModel、ComWheel全部接口一图看懂

【免费下载链接】progress-bar-cj自定义进度条归一化UI组件项目地址: https://gitcode.com/Cangjie-TPC/progress-bar-cj

progress-bar-cj是一个用仓颉语言编写的鸿蒙系统进度条 UI 组件三方库,提供 Material / Smooth 双风格、圆形 + 水平两种形态的自定义进度条。本文作为progress-bar-cj API 速查手册,带你一图看懂MaterialModel、ComMaterialModel、ComWheel三大核心类与MaterialProgressStyle枚举的全部接口,鸿蒙仓颉开发者收藏这一篇就够了。

📌 组件全景:4 种进度条形态,一个组件全搞定

MaterialProgressBar是库的"总入口"组件,构造时传入风格和配置模型两个参数,即可切换以下 4 种形态:

风格枚举形态适用场景
MaterialCircularMaterial 圆形进度轮加载状态、环形仪表
MaterialHorizontalMaterial 水平进度柱下载进度、任务进度
SmoothCircularSmooth 圆形进度轮平滑过渡动画效果
SmoothHorizontalSmooth 水平进度柱平滑过渡动画效果

枚举完整定义见 material_progress_style.cj。

🎨 MaterialModel:水平柱与 Material 圆形的"总控开关"

MaterialModel是MaterialProgressBar的配置模型类(带@Observed状态监听),源码见 material_progress_bar.cj。全部 setter 接口按功能分组如下:

颜色与背景

接口参数类型作用
setColorUInt32设置进度条主色
setColorsArray<UInt32>设置多色数组(彩色进度条)
setSecondColorUInt32设置第二进度条颜色
setBgColorUInt32设置背景轨道颜色
setShowProgressBackgroundBool一键显示/隐藏背景轨道
setIsGradientsBool开启渐变效果

进度与几何

接口参数类型作用
setProgressFloat64设置主进度值(默认 30.0)
setSecondProgressFloat64设置第二进度值
setAngleFloat64设置角度
setRadiusFloat64设置圆形进度轮半径(默认 50.0)
setStrokeWidthFloat64设置描边宽度(默认 8.0)

动画与特效

接口参数类型作用
setIndeterminateBool开启"不确定模式"(无限滚动动画)
setIndeterminateAngleBool开启不确定角度摆动效果
setSpeedFloat64设置动画速度(默认 1.5)
setCurveCurve设置动画曲线(默认Curve.Linear)
setIsStopBool停止动画
setIsReversedBool反转方向
setIsMirrorBool镜像效果
setIsPocketBool凹陷样式开关

分割与风格

接口参数类型作用
setStyleMaterialProgressStyle切换 4 种进度条形态
setSeparatorLengthFloat64设置分割段长度
setSectionsCountInt64设置分割次数(默认 4)
setHorizontalLengthFloat64设置水平柱长度
setProgressInitFloat64设置初始进度值

🎡 ComMaterialModel + ComWheel:进度轮专属 API

想要"轮圈 + 旋转动画 + 百分比文字"的精致进度轮?用独立组件ComWheel,源码见 com_wheel.cj。它内部持有配置模型ComMaterialModel,接口分为三组:

外观设置

接口参数类型作用
setCircleRadiusFloat64进度轮半径(默认 30.0)
setBarColorUInt32画笔(进度弧)颜色
setRimColorUInt32外轮圈颜色
setBarWidthFloat64进度弧宽度(默认 5.0)
setRimWidthFloat64轮圈宽度(默认 5.0)
setSpinSpeedFloat64旋转速度(默认 230.0)

进度控制

接口参数类型作用
setProgressFloat64设置目标进度(0.0 ~ 1.0,带缓动动画)
setInstantProgressFloat64立即跳到指定进度(无动画)
setLinearProgressBool切换线性/缓动插值模式
getProgress-获取当前进度文本
resetCount-进度清零

旋转控制

接口参数类型作用
setSpinningBool开启/关闭旋转动画
spin-启动旋转
stopSpinning-停止旋转并清零
spinning-查询是否正在旋转
init_data-初始化轮圈路径与动画定时器
closeTimer-取消动画定时器(组件销毁时自动调用)

🔗 其他通用类:一眼扫完

类位置说明
MaterialProgressBarmaterial_progress_bar.cj总入口组件,按 style 自动分发 4 个子组件
MaterialProgressStylematerial_progress_style.cj4 种风格枚举,支持==/!=比较
ProgressBar接口progress_bar.cj定义setProgress/getProgress/setMaxProgress/getMaxProgress四个契约方法
CircularComponentcircular_component.cj圆形进度属性载体:bgColor、color、strokeWidth、progress、progressMax、angle等字段
HorizontalComponenthorizontal_component.cj水平进度属性载体,字段与圆形一致并增加偏移量mOffset

🛠 快速上手:三步接入进度条组件

  1. 引入依赖:将progressbar模块拷贝到工程,在oh-package.json5的 dependencies 中添加"progressbar": "file:../progressbar",并在cjpm.toml中配置路径依赖(详细步骤见 README.md)。
  2. 导入包:在页面文件中import progressbar.*。
  3. 配置并声明组件:在aboutToAppear中配置MaterialModel,在build中声明组件。最小示例:
var frameworkModel: MaterialModel = MaterialModel() this.frameworkModel.setStyle(MaterialProgressStyle.MaterialHorizontal) this.frameworkModel.setProgress(30.0) this.frameworkModel.setColor(0x009688) // build 中声明 MaterialProgressBar(style: MaterialProgressStyle.MaterialHorizontal, modelBuild: this.frameworkModel)

完整可运行示例见 material_progress_bar_sample.cj,其中演示了彩色进度、Tinted 染色、不确定模式、工具栏进度条等多种玩法。

📂 常用文档路径速查

  • API 特性文档:doc/feature_api.md
  • 组件库源码目录:progressbar/src/main/cangjie/src/
  • 示例入口页:entry/src/main/cangjie/src/index.cj
  • 演示图片资源:doc/assets/

💡小结:记住"总控用MaterialModel、进度轮用ComWheel+ComMaterialModel、风格切换用MaterialProgressStyle"这一条主线,progress-bar-cj 的全部接口就尽在掌握,动手试试吧!

【免费下载链接】progress-bar-cj自定义进度条归一化UI组件项目地址: https://gitcode.com/Cangjie-TPC/progress-bar-cj

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/25 1:34:02

rkt export 实战指南:将已退出 Pod 导出为 ACI 镜像

容器运行时云原生网络 【免费下载链接】rkt [Project ended] rkt is a pod-native container engine for Linux. It is composable, secure, and built on standards. 项目地址&#xff1a; https://gitcode.com/gh_mirrors/rk/rkt 点击查看 免费下载 rkt export 子命令负责把…

作者头像 李华
网站建设 2026/9/25 1:33:58

treg公司数据富化实战:用Crunchbase、Apollo等API秒查企业信息

treg公司数据富化实战&#xff1a;用Crunchbase、Apollo等API秒查企业信息 【免费下载链接】treg OpenRouter for agent tools. Join community here: https://discord.gg/6mQYYfFMAn 项目地址: https://gitcode.com/GitHub_Trending/treg/treg 如果你想在不签月费、不注…

作者头像 李华
网站建设 2026/9/25 1:33:24

第一个MLX90614项目:用ohcode积木亲手打造非接触式温度计

第一个MLX90614项目&#xff1a;用ohcode积木亲手打造非接触式温度计 【免费下载链接】CupCode_MLX90614红外测温模块 源师兄的红外测试模块扩展 项目地址: https://gitcode.com/yuanshixiong/mlx0614 还在为“怎么从零做一个红外测温仪”发愁&#xff1f;MLX90614 红外…

作者头像 李华
网站建设 2026/9/25 1:32:14

Qt权限管理系统源码解析:RBAC模型与数据库对接实战

简介&#xff1a;本资源是一套基于Qt框架开发的权限管理系统源码&#xff0c;面向学习C与Qt桌面开发、需要理解权限控制模型的学生和开发者。项目同时提供图形界面与命令行两种交互方式&#xff0c;覆盖用户登录注销、读写更新删除等权限的授权与回收、对象列表查看、用户权限信…

作者头像 李华