跳到正文

旋转加载指示器

Spinner

初级通用

旋转加载指示器(Spinner)是任务进行中反复转动的小图形,通常不表示完成了多少。它让你在等待搜索、提交等结果时知道系统还在处理,而不是误以为操作没有生效。

你可能会说:「点了生成按钮后,结果出来前能不能有个转圈的提示,让用户知道还在处理?」

动手看看

搜索知识库
设计规范
搜索
正在搜索相关文章…结果返回前,指示器会持续旋转。
找到 2 篇相关文章
设计规范:按钮的状态
设计规范:搜索与筛选
任务状态
旋转节奏

先看搜索框下方持续旋转的指示器,再把「任务状态」切到已完成;调转速或节奏会自动重播。这里用状态控件模拟请求进度,搜索按钮仅演示按下反馈。

处理中只表示系统仍在工作;转了多少圈不代表搜索完成了多少,别把它当进度条。

匀速转动比较平稳,适合这种需要反复循环、又不想抢注意力的等待提示。

要点

  1. 1

    表示正在处理而非处理进度

    你可以把 Spinner 理解成“还在忙”的信号。它反复旋转,但转过几圈不对应任务完成了多少;因为没有可靠的进度数据,所以它不能告诉用户还要等多久。

  2. 2

    放在与等待任务相关的位置

    如果只是在刷新一张报表,我们把指示器放在报表区域,其他操作仍可继续。只有整个页面都暂时无法使用时,才考虑覆盖更大范围,这样用户能看出到底哪里在等待。

  3. 3

    让等待状态有开始也有结束

    请求发出后可以显示 Spinner,拿到结果、报错或取消后就把它移走,并展示对应状态。光有转圈还不够,配上“正在生成”等文字,也能让看不到动画的用户知道发生了什么。

容易混淆的地方

Spinner 和进度条都表示等待,但进度条适合展示可计算的完成比例;Spinner 只说明任务尚未结束。它也不是骨架屏:骨架屏用占位布局提示内容将出现在哪里,更适合页面或列表初次加载。比如生成一段 AI 回复时,我们可以用 Spinner 表示正在处理,却不能让它暗示回复已完成了一半。

什么时候用

适合用

  • 在后台点击“重新计算报表”后,计算时间不确定,可以在报表区域显示 Spinner,直到结果或错误返回。
  • 用户提交登录表单后,需要等待服务器验证,可以在提交按钮旁显示 Spinner,说明这次提交正在处理。
  • AI 工具开始生成图片、但还没有可展示的结果时,可以在结果区域显示 Spinner 和“正在生成”。

不适合用

  • 文件上传能获取已上传字节数时,用进度条更合适,用户可以据此判断进展,而不只是看到它还在转。
  • 商品列表首次加载且页面布局已确定时,可以用骨架屏占住图片和文字的位置,让用户知道内容会出现在哪里。
  • 点击导航链接后立即进入新页面、没有需要等待的异步任务时,不必加 Spinner,直接完成页面切换即可。

练一练

你在做一个 AI 图片生成页。点击“生成”后,服务器处理时间不确定,期间没有中间结果;成功后展示图片,失败时显示错误。等待状态怎么设计?

让 AI 帮你做

请在 AI 图片生成页的结果区域加入旋转加载指示器(Spinner):点击“生成”且请求进行中时显示,并配文“正在生成”;成功后展示图片,失败后展示错误,取消请求后也结束加载状态。不要用旋转圈数表示进度。

接下来学什么