Chips

Komponent Chip to niewielki, interaktywny element interfejsu. Reprezentuje złożone elementów takich jak kontakt lub tag, często z ikoną i etykietą. Jest taka możliwość możliwe do zaznaczenia, zamknięcia lub kliknięcia.

Oto 4 typy elementów i miejsca, w których można ich używać:

  • Pomoc: prowadzi użytkownika podczas wykonywania zadania. Często jest wyświetlana jako tymczasowy interfejs użytkownika. w odpowiedzi na dane wejściowe użytkownika.
  • Filtrowanie: umożliwia użytkownikom zawężanie treści z wybranych opcji. Mogą zaznaczone lub odznaczone pole może zawierać ikonę znacznika wyboru.
  • Dane wejściowe: reprezentuje informacje przekazane przez użytkownika, takie jak wybory w . Mogą zawierać ikonę i tekst oraz znak „X”. do usunięcia.
  • Sugestia: wyświetla rekomendacje na podstawie ostatnich działania lub dane wejściowe. Zazwyczaj są wyświetlane pod polem do wprowadzania danych, prosząc użytkownika o podanie .
.
Przykład każdego z 4 komponentów elementu z wyróżnionymi ich unikalnymi cechami.
Rysunek 1. Cztery komponenty układu scalonego.

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 określone funkcje kompozycyjne mają oddzielne atrybuty leadingIcon i trailingIcon .
  • onClick: funkcja lambda wywoływana przez element po naciśnięciu przez użytkownika.

Element pomocniczy

Funkcja kompozycyjna AssistChip pozwala w prosty sposób utworzyć który skieruje użytkownika w konkretną stronę. Rozróżnianie 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.
Rysunek 2. Element pomocniczy.

Ikona filtra

Funkcja kompozycyjna FilterChip wymaga sprawdzenia, czy element zaznaczono. Poniższy przykład pokazuje, jak wyświetlić wiodący ikona zaznaczenia 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.
Rysunek 3. Odznaczono ikonę filtra.

Po wybraniu wyświetla się tak:

Wybrany element filtra z kratką i kolorowym tłem.
Rysunek 4. Wybrano ikonę filtra.

Element wejściowy

Za pomocą funkcji kompozycyjnej InputChip możesz utworzyć elementy powstałe na podstawie interakcji użytkownika. Na przykład w kliencie poczty e-mail, gdy użytkownik pisze adres e-mail, element do wprowadzania danych może reprezentować osobę, której adres wpisał w „to:” .

Poniższa implementacja prezentuje element wejściowy, który jest już w 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.
Rysunek 5. Element wprowadzania danych.

Element sugestii

Element kompozycyjny SuggestionChip to najbardziej podstawowy z wymienionych elementów kompozycyjnych. na tej stronie, zarówno w definicji interfejsu API, jak i w typowych przypadkach użycia. Sugestia zawierają dynamicznie generowane wskazówki. Na przykład w aplikacji do czatu AI może wykorzystać elementy z sugestią do przedstawienia możliwych odpowiedzi na najnowsze .

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.
Rysunek 6. Element pomocniczy.
.

Element podniesiony

Wszystkie przykłady w tym dokumencie korzystają z podstawowych elementów kompozycyjnych, które mają prosty Wygląd. Jeśli zależy Ci na układzie scalonym, który ma bardziej atrakcyjny wygląd, 3 elementy kompozycyjne:

Dodatkowe materiały