进度条反馈
一条沿轨道延展的横条,用填充表示事情进行到哪一步;不知道还剩多少时,条本身也可以只是动着。
- 那条会走满的横条
- 读条
- 进度走到一半卡住了
- 进度条
- 进度指示器
- 线性进度指示器
示例
示例可交互
Web / iOS / Android 对照
Web原生支持
平台通用范围
progress
也叫 <progress>
HTML: <progress>
官方定义是「显示一个任务完成进度的指示器,通常渲染成一条进度条」。不定量也是它:官方写明「如果没有 value 属性,进度条就是不定量的,表示某个活动正在进行但无法预估还要多久」,并可用 :indeterminate 选中。所以定量与不定量在这一端是同一个元素的两种状态,不是两个东西。
iOS原生支持
平台通用范围
Progress Bar
也叫 ProgressView
SwiftUI: ProgressView(linear 样式)
官方描述条形的填充方向:「进度条有一条从前缘向后缘填充的轨道」。有一条容易踩的范围限制:不定量的条形只有 macOS 支持 ——「所有平台都支持一个看起来在旋转的圆形图像;不过 macOS 还支持不定量的进度条」。也就是说在 iOS 上这条词条实际是定量专属,这与 Web 的 `<progress>` 恰好相反。开发接口与加载指示器共用 ProgressView,靠样式区分。
Android原生支持
平台通用范围
Linear Progress Indicator
Compose: LinearProgressIndicator
Material 把进度指示器分成「linear and circular」两个变体,线性那个归这里。官方对整类的定位是「实时显示一个过程的状态」,并且线性与环形都各有形状与粗细的视觉配置。
使用规范
什么时候用
- 任务有可计算的进度,能告诉用户还剩多少时
- 下载、上传、导出这类用户愿意等但想知道进展的操作
- 版面能放下一条横轨道,比一个环形更容易读出「走到哪了」时
什么时候别用
- 耗时极短,条还没走就没了
- 进度值是编的 —— 不知道进度就用平台支持的不定量形态,别伪造数值
- 该平台不支持不定量的条(iOS 就是)→ 那种情况用加载指示器
容易混淆
给 AI 的提示词
这条词条还没有经过验证的实现提示词。