Liste mit mehreren Artikeltypen erstellen

Mit einer Liste mit mehreren Artikeltypen können Sie gemischte Inhaltstypen wie Text, Bilder und interaktive Elemente anzeigen.

Versionskompatibilität

Für diese Implementierung muss das minSDK Ihres Projekts auf API-Level 21 oder höher festgelegt sein.

Abhängigkeiten

Mehrere Artikeltypen hinzufügen

Sie können den Inhaltstyp für jedes Element des Layouts angeben, wenn Sie eine Liste oder ein Raster mit mehreren Elementtypen erstellen:

@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)

Wichtige Punkte zum Code

  • Gibt den Inhaltstyp für jedes Element an, indem contentType in items() festgelegt wird.
  • Hier wird jeder Inhaltstyp einem entsprechenden Composeable zugeordnet. Audio ist beispielsweise ein contentType, das an anderer Stelle definiert ist und einem AudioMessage-Komposit zugeordnet ist.
  • Bei Compose werden die gerenderten Composeables für jedes Element eines bestimmten Inhaltstyps wiederverwendet.

Ergebnisse

Codeausgabe mit Audio- und Textnachrichten
Abbildung 1: Codeausgabe mit Audio- und Textnachrichten

Sammlungen, die diesen Leitfaden enthalten

Dieser Leitfaden ist Teil der folgenden ausgewählten Sammlungen von Kurzanleitungen, die allgemeinere Ziele der Android-Entwicklung abdecken:

Mit Listen und Rastern können Sie Sammlungen in Ihrer App in einer visuell ansprechenden Form präsentieren, die für Nutzer leicht zu konsumieren ist.
Hier erfahren Sie, wie Sie mit kombinierbaren Funktionen ganz einfach ansprechende UI-Komponenten auf der Grundlage des Material Design-Designsystems erstellen können.
In dieser Videoreihe werden verschiedene Compose APIs vorgestellt. Sie erhalten einen schnellen Überblick über die verfügbaren APIs und ihre Verwendung.

Hast du Fragen oder Feedback?

Auf unserer Seite mit häufig gestellten Fragen finden Sie Kurzanleitungen. Sie können sich auch gern an uns wenden.