基于Progress组件的进度条
场景一:反向进度条
效果
倒计时样式的进度条
方案
注意:这个Progress组件最常见的是和通用属性rotate一起使用,除了上图这种逆向倒计时,还有那种类似于温度计(从下到上加载)的效果,全都是利用rotate。
ArkUI中组件的方向轴示意图:
一般而言,我们的Progress组件都是顺时针从0→100加载的。
1.Progress组件从100→0加载。
2.把这个圆形Progress按照y轴旋转180°,也就是想象一枚硬币翻转一面的样子。
核心代码
场景二:自定义电池电量的显示
效果
方案
clip(value: boolean | CircleAttribute | EllipseAttribute | PathAttribute | RectAttribute)
按指定的形状对当前组件进行裁剪。
卡片能力: 从API version 9开始,该接口支持在ArkTS卡片中使用。
系统能力: SystemCapability.ArkUI.ArkUI.Full
参数:
参数名 | 类型 | 必填 | 说明 |
value | boolean | CircleAttribute | EllipseAttribute | PathAttribute | RectAttribute | 是 | 参数为相应类型的组件,按指定的形状对当前组件进行裁剪;参数为boolean类型时,设置是否按照父容器边缘轮廓进行裁剪。默认值:false |
在使用Progress的时候要注意像如上场景中的电池型的进度条,中间的进度条是横线,而我们的这个组件Linear类型中进度条默认是带有弧度的,若要改变其边角半径就要使用clip属性,而大多数开发者往往会忽略这一点,注意使用Progress组件的时候一定要使用clip属性。
核心代码
场景三:扇形圆弧进度条
效果
方案
场景一和场景二是可以用progress组件配合其他属性来实现,但是有的不行,例如互联网运营商的app中的流量码表,这种建议不使用progress,使用canvas来自己绘制,具体实现代码如下。
核心代码
常见问题
1. progress有没有设置速度的属性?
暂时没有。
2. progress为什么有些类型设置渐变色生效有些不生效?
目前progress组件只支持ring类型的渐变色,其它类型暂不支持。
能不能修改进度条组件的持续时间