Dialog
组件在主应用内容上方的一层显示弹窗消息或请求用户输入。它创建了一种中断性的 UI 体验以吸引用户注意。
对话框的用例包括以下方面:
- 确认用户操作,例如删除文件时。
- 请求用户输入,例如在待办事项列表应用中。
- 呈现选项列表供用户选择,例如在配置文件设置中选择国家/地区。
本主题提供以下实现:
版本兼容性
此实现要求您的项目 minSDK 设置为 API 级别 21 或更高。
依赖项
创建警告对话框
AlertDialog
可组合项提供了一个便捷的 API,用于创建 Material Design 主题的对话框。以下示例在警告对话框中实现了两个按钮,一个用于关闭对话框,另一个用于确认其请求:
此实现意味着存在一个父可组合项,它通过以下方式将参数传递给子可组合项:
结果

要点
AlertDialog
具有用于处理对话框特定元素的特定参数。其中包括:
title
:显示在对话框顶部的文本。text
:显示在对话框中心位置的文本。icon
:显示在对话框顶部的图形。onDismissRequest
:当用户关闭对话框时(例如通过点击对话框外部)调用的函数。dismissButton
:用作关闭按钮的可组合项。confirmButton
:用作确认按钮的可组合项。当用户点击任一按钮时,对话框会关闭。当用户点击确认按钮时,它会调用一个也处理确认的函数。在此示例中,这些函数是
onDismissRequest()
和onConfirmRequest()
。在对话框需要更复杂的按钮集的情况下,您可以使用
Dialog
可组合项并以更自由的形式填充它,这可能会有所帮助。
创建对话框
Dialog
是一个基本的可组合项,它不提供任何样式或预定义的内容插槽。它是一个简单的容器,您应该用一个容器(例如 Card
)填充它。以下是对话框的一些关键参数:
onDismissRequest
:用户关闭对话框时调用的 lambda 函数。properties
:DialogProperties
的一个实例,提供一些额外的自定义范围。
创建基本对话框
以下是 Dialog
可组合项的基本实现示例。请注意,它使用 Card
作为辅助容器。如果没有 Card
,Text
组件将单独显示在主应用内容上方。
结果
请注意,当对话框打开时,其下方的主应用内容会变暗和变灰:

创建高级对话框
以下是 Dialog
可组合项的更高级实现示例。在这种情况下,该组件手动实现了一个与前面的 AlertDialog
示例类似的界面。
结果

包含本指南的合集
本指南是涵盖更广泛 Android 开发目标的精选快速指南合集的一部分:

显示文本

请求用户输入
