创建以进度为中心的通知

顶部通知栏中以进度为中心的通知
图 1. 通知栏顶部以进度为中心的通知。

Android 16 引入了新的通知模板,可帮助用户无缝跟踪用户发起的从开始到结束的历程。这些通知在系统界面上的可见性更高,并且在抽屉式通知栏中排名靠前。

使用 Notification.ProgressStyle 为以进度为中心的通知设置样式。 主要应用场景包括拼车、送货和导航。在该类中,您可以使用点和段来表示用户体验历程中的状态和里程碑。

相关课程

以下类包含用于构建 ProgressStyle 通知的不同 API:

剖析和自定义

下图显示了构成 ProgressStyle 通知的不同部分:

图 2.

A. Header - Subtext

Notification.Builder#setSubText()

B. 标头 - 时间

Notification.Builder#setWhen()

C. 内容标题

Notification.Builder#setContentTitle()

D. 内容文本

Notification.Builder#setContentText()

E. 进度条

Notification.ProgressStyle

F. 操作按钮

Notification.Builder#addAction()

图 3. 应用可以为跟踪器图标设置车辆图片,并使用路段和点来表示拼车体验和里程碑。

最佳做法

使用正确的 API 并遵循最佳实践,为进度更新提供最佳用户体验。

  • 设置正确的字段,以满足在通知栏中提升曝光度的要求。
  • 使用合适的视觉元素来引导用户。例如,拼车应用应设置车辆图片,并在通知中使用 Notification#setLargeIcon 准确显示车辆颜色。
  • 使用简洁明了的语言来定义用户体验历程的进度。 到达时间、司机姓名和行程状态是通知应传达的重要文本。
  • 在通知中提供实用且相关的操作,以简化用户体验历程。例如,在送餐前,为新发起的送餐订单提供“小费”和“添加菜品”是非常有用的操作。
  • 使用线段和点来表示状态。例如,路段可以为拼车行程中的路况和时长着色。点表示里程碑的状态,例如食物准备、送餐和乘客上车。
  • 更新进度体验,以准确反映行程的实际进度。例如,路况信息的变化可以通过路段颜色的变化和文本的更新来反映。

以下代码段展示了如何在拼车情境中使用 ProgressStyle 通知:

var ps =
    Notification.ProgressStyle()
        .setStyledByProgress(false)
        .setProgress(456)
        .setProgressTrackerIcon(Icon.createWithResource(appContext, R.drawable.ic_car_red))
        .setProgressSegments(
            listOf(
                Notification.ProgressStyle.Segment(41).setColor(Color.BLACK),
                Notification.ProgressStyle.Segment(552).setColor(Color.YELLOW),
                Notification.ProgressStyle.Segment(253).setColor(Color.WHITE),
                Notification.ProgressStyle.Segment(94).setColor(Color.BLUE)
            )
        )
        .setProgressPoints(
            listOf(
                Notification.ProgressStyle.Point(60).setColor(Color.RED),
                Notification.ProgressStyle.Point(560).setColor(Color.GREEN)
            )
        )

如需试用这些 API,请参阅示例应用。