为一篇 HarmonyOS7 教程文章绘制手绘笔记风信息图,主题是“ToastDurationCon

前言

同样是提示信息,显示 1 秒、2 秒还是 3 秒,用户的感受差别其实很大。太短,用户来不及看;太长,又会显得拖沓。Toast 的时长设置看似只是一个数字,背后其实对应的是信息优先级和阅读负担。

这个案例把不同显示时长放在一个页面里做并列演示,非常适合拿来建立一套项目内的提示规范。

页面目标

案例提供四个按钮,分别展示:

  • 1500ms 的短提示
  • 3000ms 的长提示
  • 系统默认时长
  • 1000ms 的极短提示

为 HarmonyOS7 文章绘制一张手绘对比图,主题是不同 Toast 显示时长的体验差异。画面分

通过这种横向对比,你可以明显感受到不同提示时长对节奏的影响。

完整代码

import { promptAction } from '@kit.ArkUI'
import { DEMO_CARD_COLOR } from './types'

@Entry
@Component
struct ToastDurationControl {
  @State isShow: boolean = true

  build() {
    Column() {
      if (this.isShow) {
        Column() {
          Text('Toast 时长控制')
            .fontSize(16)
            .fontWeight(FontWeight.Bold)
            .margin({ bottom: 16 })

          Row() {
            Button('短提示 (1.5s)')
              .width('45%')
              .height(48)
              .backgroundColor('#6BCB77')
              .borderRadius(12)
              .fontColor('#FFFFFF')
              .fontSize(14)
              .onClick(() => {
                promptAction.showToast({
                  message: '短时 Toast (1500ms)',
                  duration: 1500
                })
              })

            Button('长提示 (3s)')
              .width('45%')
              .height(48)
              .backgroundColor('#4D96FF')
              .borderRadius(12)
              .fontColor('#FFFFFF')
              .fontSize(14)
              .onClick(() => {
                promptAction.showToast({
                  message: '长时 Toast (3000ms)',
                  duration: 3000
                })
              })
          }
          .width('100%')
          .justifyContent(FlexAlign.SpaceBetween)
          .margin({ bottom: 16 })

          Row() {
            Button('默认时长')
              .width('45%')
              .height(48)
              .backgroundColor('#FFA500')
              .borderRadius(12)
              .fontColor('#FFFFFF')
              .fontSize(14)
              .onClick(() => {
                promptAction.showToast({
                  message: '默认时长 Toast'
                })
              })

            Button('极短提示')
              .width('45%')
              .height(48)
              .backgroundColor('#9B59B6')
              .borderRadius(12)
              .fontColor('#FFFFFF')
              .fontSize(14)
              .onClick(() => {
                promptAction.showToast({
                  message: '1000ms',
                  duration: 1000
                })
              })
          }
          .width('100%')
          .justifyContent(FlexAlign.SpaceBetween)
          .margin({ bottom: 24 })

          Column() {
            Text('时长参考:')
              .fontSize(13)
              .fontColor('#999999')
              .margin({ bottom: 6 })
            Text('短操作反馈:1000-1500ms')
              .fontSize(12)
              .fontColor('#AAAAAA')
              .margin({ bottom: 3 })
            Text('一般提示:1500-2500ms')
              .fontSize(12)
              .fontColor('#AAAAAA')
              .margin({ bottom: 3 })
            Text('重要提示:2500-3500ms')
              .fontSize(12)
              .fontColor('#AAAAAA')
          }
          .width('100%')
          .padding(12)
          .backgroundColor('#F8F8F8')
          .borderRadius(8)
        }
        .width('100%')
        .padding(24)
        .backgroundColor(DEMO_CARD_COLOR)
        .borderRadius(12)
      }
    }
    .width('100%')
    .height('100%')
    .backgroundColor('#F5F6FA')
    .padding(16)
  }
}

为一篇讲解 HarmonyOS7 ToastDurationControl 的教程绘制手绘流程图,内

关键代码讲解

1. duration 直接决定提示停留时间

案例里最核心的区别,全部落在 duration 参数上。

例如短提示:

promptAction.showToast({
  message: '短时 Toast (1500ms)',
  duration: 1500
})

再比如长提示:

promptAction.showToast({
  message: '长时 Toast (3000ms)',
  duration: 3000
})

这意味着 Toast 的节奏控制非常直接,不需要额外状态机,也不需要自己写隐藏计时器。

2. 时长其实是在表达信息等级

建议不要把时长看成一个纯视觉参数,它更接近信息权重配置:

  • 低权重提示,用短时间即可
  • 中等提示,保证能看清即可
  • 高权重提示,可以适当延长停留时间

如果你把所有提示都设成 3 秒以上,用户会觉得页面总有东西挂着不走,体验会变沉。

3. 默认时长适合快速接入

案例中的“默认时长”没有传 duration。这在早期接入时很方便,尤其是你还没有沉淀设计规范的时候。

但到了正式项目阶段,建议还是按场景显式声明时长。这样做有两个好处:

  • 交互规范更稳定
  • 团队成员更容易理解这条提示的意图

设计建议

如果你的页面里提示很多,最好建立统一约定,比如:

  • 成功保存:1500ms
  • 一般提示:2000ms
  • 风险提醒或失败反馈:2500ms 以上

统一之后,产品体验会更整齐,用户也更容易形成预期。

总结

这个案例真正讲的不是四个按钮,而是如何给轻提示设定合理停留时间。一旦你把时长和信息等级对应起来,Toast 就不再是随手一写的小功能,而会变成一套有节奏感的反馈系统。

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐