Chip コンポーネントは、コンパクトでインタラクティブな UI 要素です。連絡先やタグなどの複雑なエンティティを表し、多くの場合、アイコンとラベルが付けられます。チェック可能、閉じることが可能、クリック可能にできます。
4 種類のチップと、それらを使用する場所は次のとおりです。
- アシスト: タスクの実行中にユーザーをガイドします。多くの場合、ユーザー入力に応じて一時的な UI 要素として表示されます。
- フィルタ: ユーザーがオプションのセットからコンテンツを絞り込めるようにします。選択または選択解除が可能で、選択するとチェックマーク アイコンが表示される場合があります。
- 入力: メニューでの選択など、ユーザーが提供する情報を表します。アイコンとテキストを含めることができ、削除用の X が表示されます。
- 提案: 最近のアクティビティや入力に基づいて、ユーザーにおすすめを提供します。通常、入力フィールドの下に表示され、ユーザーの操作を促します。
API サーフェス
4 種類のチップに対応する 4 つのコンポーザブルがあります。以降のセクションでは、これらのコンポーザブルとその違いについて詳しく説明します。ただし、次のパラメータは共通です。
label: チップに表示される文字列。icon: チップの先頭に表示されるアイコン。一部の特定のコンポーザブルには、個別のleadingIconパラメータとtrailingIconパラメータがあります。onClick: ユーザーがチップを押したときにチップが呼び出すラムダ。
アシストチップ
AssistChip コンポーザブルを使用すると、ユーザーを特定の方向に誘導するアシストチップを簡単に作成できます。特徴的な機能の 1 つは、チップの左側にアイコンを表示できる 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 コンポーザブルを使用すると、ユーザー操作の結果としてチップを作成できます。たとえば、メール クライアントでユーザーがメールを作成している場合、入力チップはユーザーが [宛先] フィールドに追加した連絡先を表すことができます。
次の実装は、すでに選択された状態の入力チップを示しています。ユーザーがチップをタップすると、チップが閉じます。
@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 Chat アプリでは、候補ワードを使用して、最新のメッセージに対する回答候補を表示できます。
SuggestionChip の実装について考えてみましょう。
@Composable fun SuggestionChipExample() { SuggestionChip( onClick = { Log.d("Suggestion chip", "hello world") }, label = { Text("Suggestion chip") } ) }
これを実装すると次のようになります。
立体チップ
このドキュメントの例ではすべて、フラットな外観のベース コンポーザブルを使用しています。チップの外観を強調したい場合は、次の 3 つのコンポーザブルのいずれかを使用します。