显示弹出式消息或用户输入请求

Dialog 组件在主应用内容层之上显示弹出式消息或用户输入请求。它创建一种中断式 UI 体验以吸引用户注意。

对话框的一些用例如下所示:

  • 确认用户操作,例如删除文件时。
  • 请求用户输入,例如在待办事项应用中。
  • 提供用户选择的选项列表,例如在个人资料设置中选择国家/地区。

本主题提供以下实现:

版本兼容性

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

依赖项

创建警报对话框

AlertDialog 可组合项提供了一个方便的 API 用于创建采用 Material Design 主题的对话框。以下示例在一个警报对话框中实现了两个按钮,一个用于关闭对话框,另一个用于确认其请求。

此实现暗示一个父可组合项,它以这种方式将参数传递给子可组合项。

结果

An open alert dialog that has both a dismiss and confirm button.
图 1. 带有按钮的警报对话框。

关键点

AlertDialog 具有用于处理对话框特定元素的特定参数。其中包括:

  • title:显示在对话框顶部的文本。
  • text:显示在对话框中心的文本。
  • icon:显示在对话框顶部的图形。
  • onDismissRequest:用户关闭对话框(例如,点击对话框外部)时调用的函数。
  • dismissButton:用作关闭按钮的可组合项。
  • confirmButton:用作确认按钮的可组合项。

  • 当用户点击任一按钮时,对话框会关闭。当用户点击确认时,它会调用一个也处理确认的函数。在此示例中,这些函数为 onDismissRequest()onConfirmRequest()

    如果您的对话框需要更复杂的按钮集,则可以使用 Dialog 可组合项并以更灵活的方式填充它。

创建对话框

Dialog 是一种不提供任何样式或预定义内容槽的基本可组合项。它是一个简单的容器,您应该使用 Card 等容器填充它。以下是对话框的一些关键参数:

  • onDismissRequest:用户关闭对话框时调用的 lambda 表达式。
  • propertiesDialogProperties 的实例,它提供了一些额外的自定义范围。

创建基本对话框

以下示例是 Dialog 可组合项的基本实现。请注意,它使用 Card 作为辅助容器。如果没有 CardText 组件将单独显示在主应用内容之上。

结果

请注意,当对话框打开时,其下方的主应用内容会变暗变灰。

A dialog that contains nothing other than a label.
图 2. 最小对话框。

创建高级对话框

以下是 Dialog 可组合项的更高级实现。在本例中,组件手动实现与前面的 AlertDialog 示例类似的界面。

结果

A dialog with a photo of Mount Feathertop, Victoria. Below the image are a dismiss button and a confirm button.
图 3. 包含图像的对话框。

包含本指南的集合

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

文本是任何 UI 的核心部分。了解在您的应用中呈现文本的不同方法,以提供愉悦的用户体验。
了解如何实现用户通过输入文本和其他输入方式与您的应用交互的方法。
了解可组合函数如何使您能够轻松创建基于 Material Design 设计系统的精美 UI 组件。

有问题或反馈?

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