The Chip
组件是一个紧凑的、交互式的 UI 元素。它代表诸如联系人或标签之类的复杂实体,通常带有图标和标签。它可以是可选中、可关闭或可点击的。
芯片的四种类型及其使用场景如下
- 辅助:在任务期间引导用户。通常作为对用户输入的响应,以临时 UI 元素的形式出现。
- 筛选器:允许用户从一组选项中细化内容。它们可以选择或取消选择,并且在选中时可能包含一个复选标记图标。
- 输入:表示用户提供的信息,例如菜单中的选择。它们可以包含图标和文本,并提供“X”用于移除。
- 建议:根据用户的近期活动或输入向用户提供建议。通常出现在输入字段下方,以提示用户操作。
API 表面
有四个可组合项对应于四种类型的芯片。以下部分详细概述了这些可组合项及其差异。但是,它们共享以下参数
label
:显示在芯片上的字符串。icon
:在芯片开头显示的图标。一些特定的可组合项具有单独的leadingIcon
和trailingIcon
参数。onClick
:用户按下芯片时,芯片调用的 lambda 表达式。
辅助芯片
The AssistChip
可组合项提供了一种简单的方法来创建辅助芯片,以引导用户朝特定方向前进。一个区别特征是它的 leadingIcon
参数,它允许您在芯片左侧显示一个图标。以下示例演示了如何实现它
@Composable fun AssistChipExample() { AssistChip( onClick = { Log.d("Assist chip", "hello world") }, label = { Text("Assist chip") }, leadingIcon = { Icon( Icons.Filled.Settings, contentDescription = "Localized description", Modifier.size(AssistChipDefaults.IconSize) ) } ) }
此实现如下所示。
筛选器芯片
The FilterChip
可组合项要求您跟踪芯片是否被选中。以下示例演示了如何仅在用户选中芯片时显示一个领先的选中图标
@Composable fun FilterChipExample() { var selected by remember { mutableStateOf(false) } FilterChip( onClick = { selected = !selected }, label = { Text("Filter chip") }, selected = selected, leadingIcon = if (selected) { { Icon( imageVector = Icons.Filled.Done, contentDescription = "Done icon", modifier = Modifier.size(FilterChipDefaults.IconSize) ) } } else { null }, ) }
此实现未选中时如下所示
选中时如下所示
输入芯片
您可以使用 InputChip
可组合项来创建由用户交互产生的芯片。例如,在电子邮件客户端中,当用户撰写电子邮件时,输入芯片可能代表用户已输入“收件人”字段的人员的地址。
以下实现演示了一个已处于选中状态的输入芯片。用户按下芯片时会将其关闭。
@Composable fun InputChipExample( text: String, onDismiss: () -> Unit, ) { var enabled by remember { mutableStateOf(true) } if (!enabled) return InputChip( onClick = { onDismiss() enabled = !enabled }, label = { Text(text) }, selected = enabled, avatar = { Icon( Icons.Filled.Person, contentDescription = "Localized description", Modifier.size(InputChipDefaults.AvatarSize) ) }, trailingIcon = { Icon( Icons.Default.Close, contentDescription = "Localized description", Modifier.size(InputChipDefaults.AvatarSize) ) }, ) }
此实现如下所示。
建议芯片
The SuggestionChip
可组合项是此页面上列出的可组合项中最基本的,无论是在其 API 定义还是其常见用例方面。建议芯片提供动态生成的提示。例如,在 AI 聊天应用程序中,您可以使用建议芯片来显示对最新消息的可能回复。
考虑此 SuggestionChip
实现
@Composable fun SuggestionChipExample() { SuggestionChip( onClick = { Log.d("Suggestion chip", "hello world") }, label = { Text("Suggestion chip") } ) }
此实现如下所示
凸起芯片
本文档中的所有示例都使用了具有扁平外观的基本可组合项。如果您想要一个具有凸起外观的芯片,请使用以下三个可组合项之一