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

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 组件。

有问题或反馈?

请访问我们的常见问题页面,了解有关快速指南的信息,或者联系我们并告诉我们您的想法。