Chip 组件是一种紧凑型互动界面元素。它表示联系人或标签等复杂实体,通常带有图标和标签。它可以是可勾选、可关闭或可点击的。
以下是四种类型的条状标签以及您可能会在何处使用它们:
- 辅助:在任务期间引导用户。通常作为临时界面元素出现,以响应用户输入。
- 过滤条件:允许用户从一组选项中优化内容。它们可以被选中或取消选中,并且在选中时可能包含复选标记图标。
- 输入:表示用户提供的信息,例如 菜单中的选择。它们可以包含图标和文本,并提供用于移除的 X 。
- 建议:根据用户的近期 活动或输入向用户提供建议。通常显示在输入字段下方,以提示用户操作。
API Surface
有四个可组合项与四种类型的条状标签相对应。以下部分将详细介绍这些可组合项及其差异。 不过,它们共享以下参数:
label:显示在条状标签上的字符串。icon:显示在条状标签开头的图标。一些特定的可组合项具有单独的leadingIcon和trailingIcon参数。onClick:用户按下条状标签时,条状标签调用的 lambda。
辅助条状标签
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) ) } ) }
此实现如下所示。
条状过滤标签
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 可组合项来创建因
用户互动而产生的条状标签。例如,在电子邮件客户端中,当用户撰写电子邮件时,输入条状标签可能表示用户已添加到“收件人:”字段的联系人。
以下实现演示了已处于选中状态的输入条状标签。用户按下条状标签时,系统会关闭该条状标签。
label
@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) ) }, ) }
此实现如下所示。
建议内容信息条
SuggestionChip 可组合项是此页面上列出的
可组合项中最基本的可组合项,无论是在 API 定义还是常见用例方面都是如此。建议条状标签会显示动态生成的提示。例如,在 AI 聊天应用中,您可以使用建议条状标签来显示对最新消息的可能回复。
请考虑以下 SuggestionChip 实现:
@Composable fun SuggestionChipExample() { SuggestionChip( onClick = { Log.d("Suggestion chip", "hello world") }, label = { Text("Suggestion chip") } ) }
此实现如下所示:
凸起条状标签
本文档中的所有示例都使用采用平面外观的基本可组合项。如果您想要具有凸起外观的条状标签,请使用以下三个可组合项之一: