创建进度指示器

进度指示器通过视觉方式呈现操作的状态。它们利用动态效果提醒用户流程的完成进度,例如加载或处理数据。它们也可以仅表示正在进行处理,而不表明具体的完成进度。

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

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

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

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

  • 线性:从左向右填充的水平条。
  • 圆形:圆环的描边长度不断增长,直到围绕整个圆周。

版本兼容性

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

依赖项

创建确定性指示器

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

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

结果

加载部分完成后,上例中的线性指示器显示如下

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

创建不确定性指示器

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

要创建不确定性进度指示器,请使用 LinearProgressIndicatorCircularProgressIndicator 可组合项,但不传递 progress 的值。以下示例展示了如何通过按下按钮来切换不确定性指示器。

结果

以下是指示器处于活跃状态时的实现示例

以下是使用 LinearProgressIndicator 而非 CircularProgressIndicator 的同一实现的示例。

要点

虽然可以使用多种可组合项来创建与 Material Design 一致的进度指示器,但它们的参数差异不大。您应该记住的关键参数包括以下各项:

  • progress:指示器显示的当前进度。传递介于 0.01.0 之间的 Float 值。
  • color:指示器的颜色,即反映进度的组件部分,在进度完成时会完全覆盖整个组件。
  • trackColor:绘制指示器的轨道颜色。

包含本指南的集合

本指南是精选快速指南集合的一部分,这些集合涵盖了更广泛的 Android 开发目标

了解如何利用可组合函数轻松创建基于 Material Design 设计系统的美观界面组件。
列表和网格允许您的应用以视觉上令人愉悦且易于用户理解的形式显示集合。

有问题或反馈

前往我们的常见问题页面了解快速指南,或者联系我们并告诉我们您的想法。