创建进度指示器

进度指示器直观地显示操作的状态。它们使用动态效果来提醒用户进程(例如加载或处理数据)完成的进度。它们还可以表示正在进行处理,而无需参考完成的进度。

考虑以下三种可能使用进度指示器的用例

  • 加载内容:从网络获取内容时,例如加载图像或用户个人资料的数据。
  • 文件上传:向用户反馈上传可能需要多长时间。
  • 长时间处理:应用正在处理大量数据时,向用户传达已完成的总量。

在 Material Design 中,有两种类型的进度指示器

同样,进度指示器可以采用以下两种形式之一

  • 线性:从左到右填充的水平条。
  • 圆形:圆圈的笔划长度会增加,直到包含圆圈的整个圆周。

版本兼容性

此实现要求您的项目 minSDK 设置为 API 级别 21 或更高。

依赖项

创建确定性指示器

确定性指示器精确反映操作完成的程度。使用 LinearProgressIndicatorCircularProgressIndicator 可组合项,并为 progress 参数传递值。

以下代码片段提供了一个相对详细的示例。当用户按下按钮时,应用会显示进度指示器,并启动一个协程,该协程会逐渐增加 progress 的值。这会导致进度指示器依次递增。

结果

加载部分完成时,前面示例中的线性指示器如下所示

同样,圆形指示器如下所示

创建不确定性指示器

不确定性指示器不会反映操作完成的进度。相反,它使用动画效果来向用户指示正在进行处理,但不会指定任何完成程度。

要创建不确定性进度指示器,请使用 LinearProgressIndicatorCircularProgressIndicator 可组合项,但不要为 progress 传递值。以下示例演示如何使用按钮点击切换不确定性指示器。

结果

以下是指示器处于活动状态时的示例

以下是相同的实现示例,但使用 LinearProgressIndicator 而不是 CircularProgressIndicator

关键点

尽管您可以使用多个可组合项来创建与 Material Design 一致的进度指示器,但它们的参数差别不大。您应该记住的关键参数包括以下内容

  • progress:指示器显示的当前进度。传递 0.01.0 之间的 Float
  • color:指示器的颜色,即反映进度的组件部分,当进度完成时,该部分完全包含组件。
  • trackColor:绘制指示器的轨道的颜色。

包含本指南的收藏夹

本指南是涵盖更广泛 Android 开发目标的精选快速指南收藏夹的一部分

了解可组合函数如何让您能够轻松创建基于 Material Design 设计系统的精美 UI 组件。
列表和网格允许您的应用以用户易于理解的直观形式显示集合。

有问题或反馈?

访问我们的常见问题页面,了解快速指南,或与我们联系,告知您的想法。