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

Listy z różnymi typami elementów możesz używać do wyświetlania treści mieszanych, takich jak tekst, obrazy i elementy interaktywne.

Zgodność wersji

Ta implementacja wymaga, aby minimalna wersja pakietu SDK projektu była ustawiona na poziom API 21 lub wyższy.

Zależności

Dodawanie wielu typów elementó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 elementu, ustawiając wartość contentType w sekcji items().
  • Mapuje każdy typ treści na odpowiedni element składany. Na przykład Audio jest contentType zdefiniowanym gdzie indziej i zmapowanym na kompozyt AudioMessage.
  • Składanie ponownie używa renderowanych komponentów w przypadku każdego elementu danego typu treści.

Wyniki

Wyjście kodu z wiadomościami tekstowymi i dźwiękowymi
Rysunek 1. Wyniki działania kodu pokazujące wiadomości tekstowe i dźwiękowe.

Kolekcje zawierające ten przewodnik

Ten przewodnik należy do tych kolekcji krótkich przewodników, które obejmują szersze zagadnienia związane z tworzeniem aplikacji na Androida:

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

Masz pytania lub chcesz przekazać opinię?

Otwórz stronę z najczęstszymi pytaniami i poznaj krótkie przewodniki lub skontaktuj się z nami i powiedz nam, co o tym myślisz.