Tworzenie listy z użyciem wielu typów elementów

Możesz użyć listy z wieloma typami elementów, aby wyświetlać treść mieszaną, taką jak tekst, obrazy i elementy interaktywne.

Wyniki

Dane wyjściowe kodu pokazujące wiadomości audio i tekstowe
Rysunek 1. Wynik działania kodu pokazujący wiadomości audio i tekstowe.

Zgodność wersji

Ta implementacja wymaga, aby minimalny pakiet SDK projektu był ustawiony na poziom API 21 lub wyższy.

Zależności

Dodawanie wielu typów produktów

Podczas tworzenia listy lub siatki z wieloma typami elementów możesz określić typ treści dla każdego elementu układu:

@Composable
fun ListWithMultipleItems(messages: List<Any>) {
    LazyColumn {
        items(
            messages.size,
            contentType = { it }
        ) {
            for (message in messages)
                when (message) {
                    is MediaStore.Audio -> AudioMessage(message)
                    is Text -> TextMessage(message)
                }
        }
    }
}

@Composable
fun AudioMessage(message: MediaStore.Audio) {
    TODO("Not yet implemented.")
}

@Composable
fun TextMessage(message: Text) {
    TODO("Not yet implemented.")
}

data class SampleMessage(val text: String, val content: Any)

Najważniejsze informacje o kodzie

  • Określa typ treści dla każdego produktu, ustawiając contentType w items().
  • Mapuje każdy typ treści na odpowiedni komponent. Na przykład Audio to contentType zdefiniowany w innym miejscu i odwzorowany na komponent AudioMessage.
  • Compose ponownie wykorzystuje wyrenderowane komponenty kompozycyjne w przypadku każdego elementu danego typu treści.

Kolekcje, które zawierają ten przewodnik

Ten przewodnik jest częścią tych wybranych kolekcji przewodników, które obejmują szersze cele związane z programowaniem na Androida:

Listy i siatki umożliwiają wyświetlanie kolekcji w atrakcyjnej wizualnie formie, która jest łatwa w użyciu.
Dowiedz się, jak funkcje typu „composable” mogą ułatwić tworzenie atrakcyjnych komponentów interfejsu na podstawie systemu projektowania Material Design.
Ta seria filmów przedstawia różne interfejsy API Compose, szybko pokazując, co jest dostępne i jak z nich korzystać.

Masz pytania lub chcesz podzielić się opinią?

Odwiedź stronę z najczęstszymi pytaniami, aby zapoznać się z przewodnikami, lub skontaktuj się z nami i podziel się swoimi przemyśleniami.