Komponent Chip
to niewielki, interaktywny element interfejsu. Przedstawia on złożone elementy, np. kontakt lub tag, często z ikoną i etykietą. Można zaznaczyć, zamknąć lub kliknąć.
Oto 4 typy elementów i miejsca, w których można ich używać:
- Pomoc: prowadzi użytkownika podczas wykonywania zadania. Często wyświetla się jako tymczasowy element interfejsu w odpowiedzi na dane wejściowe użytkownika.
- Filtrowanie: umożliwia użytkownikom doprecyzowywanie treści z ustalonych opcji. Możesz je zaznaczyć lub odznaczyć. Po ich zaznaczeniu może być widoczna ikona znacznika wyboru.
- Dane wejściowe: reprezentuje informacje przekazane przez użytkownika, takie jak opcje w menu. Mogą zawierać ikonę i tekst oraz znak „X” oznaczający usunięcie.
- Sugestia: zawiera rekomendacje na podstawie ostatniej aktywności lub danych wprowadzonych przez użytkownika. Zwykle wyświetlają się pod polem do wprowadzania danych, by zachęcić użytkownika do działania.
Interfejs API
Istnieją 4 elementy kompozycyjne, które odpowiadają 4 typom elementów. W kolejnych sekcjach znajdziesz szczegółowe omówienie tych funkcji kompozycyjnych i różnic między nimi. Obejmują one jednak te parametry:
label
: ciąg znaków widoczny na elemencie.icon
: ikona wyświetlana na początku elementu. Niektóre z określonych funkcji kompozycyjnych mają oddzielny parametrleadingIcon
itrailingIcon
.onClick
: funkcja lambda wywoływana przez element po naciśnięciu przez użytkownika.
Element pomocniczy
Funkcja kompozycyjna AssistChip
to prosty sposób na utworzenie elementu pomocy, który skieruje użytkownika w wybranym kierunku. Cechą wyróżniającą element to parametr leadingIcon
, który umożliwia wyświetlenie ikony po lewej stronie elementu. Poniższy przykład pokazuje, jak możesz zastosować ten tag:
@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) ) } ) }
Implementacja wygląda tak.
![Prosty element wspomagający.](https://developer.android.google.cn/static/develop/ui/compose/images/components/chip-assist.png?authuser=1&hl=pl)
Ikona filtra
Funkcja kompozycyjna FilterChip
wymaga sprawdzenia, czy został wybrany element. Ten przykład pokazuje, jak wyświetlać na początku ikonę z zaznaczoną ikoną tylko wtedy, gdy użytkownik wybierze element:
@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 }, ) }
Gdy ta implementacja nie jest zaznaczona, implementacja wygląda tak:
![Niewybrany element filtra bez sprawdzania i tła planu.](https://developer.android.google.cn/static/develop/ui/compose/images/components/chip-filter.png?authuser=1&hl=pl)
Po wybraniu wyświetla się tak:
![Wybrany element filtra z kratką i kolorowym tłem.](https://developer.android.google.cn/static/develop/ui/compose/images/components/chip-filter-active.png?authuser=1&hl=pl)
Element wejściowy
Za pomocą funkcji kompozycyjnej InputChip
możesz tworzyć elementy będące wynikiem interakcji użytkownika. Na przykład w kliencie poczty e-mail, gdy użytkownik pisze e-maila, element do wprowadzania danych może reprezentować osobę, której adres wpisał w polu „Do:”.
Poniższa implementacja prezentuje element wejściowy, który jest już w wybranym stanie. Użytkownik zamyka element po jego naciśnięciu.
@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) ) }, ) }
Implementacja wygląda tak.
![Element do wprowadzania danych z awatarem i ikoną na końcu.](https://developer.android.google.cn/static/develop/ui/compose/images/components/chip-input.png?authuser=1&hl=pl)
Element sugestii
Element kompozycyjny SuggestionChip
to najbardziej podstawowy z elementów kompozycyjnych wymienionych na tej stronie, zarówno w definicji interfejsu API, jak i typowych przypadkach użycia. Elementy sugestii prezentują dynamicznie generowane wskazówki. Na przykład w aplikacji do czatu AI możesz użyć elementów z sugestią, aby przedstawić możliwe odpowiedzi na najnowszą wiadomość.
Rozważ takie wdrożenie elementu SuggestionChip
:
@Composable fun SuggestionChipExample() { SuggestionChip( onClick = { Log.d("Suggestion chip", "hello world") }, label = { Text("Suggestion chip") } ) }
Implementacja wygląda tak:
![Prosty element wspomagający.](https://developer.android.google.cn/static/develop/ui/compose/images/components/chip-suggestion.png?authuser=1&hl=pl)
Element podniesiony
Wszystkie przykłady w tym dokumencie korzystają z podstawowych elementów kompozycyjnych, które mają płaski wygląd. Jeśli chcesz, aby element wyglądał bardziej wydajnie, użyj jednego z tych 3 elementów kompozycyjnych: