Creare un elenco utilizzando più tipi di elementi

Puoi utilizzare un elenco con più tipi di elementi per visualizzare tipi di contenuti misti, come testo, immagini ed elementi interattivi.

Compatibilità delle versioni

Questa implementazione richiede che il valore minSDK del progetto sia impostato sul livello API 21 o superiore.

Dipendenze

Aggiungere più tipi di articoli

Puoi specificare il tipo di contenuti per ogni elemento del layout quando componi un elenco o una griglia con più tipi di elementi:

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

Punti chiave del codice

  • Specifica il tipo di contenuti per ogni elemento impostando contentType in items().
  • Mappa ogni tipo di contenuto a un composable corrispondente. Ad esempio, Audio è un contentType definito altrove e mappato a un composableAudioMessage.
  • Compose riutilizza i composabili visualizzati per ogni elemento di un determinato tipo di contenuti.

Risultati

Output del codice che mostra messaggi audio e di testo
Figura 1. Output del codice che mostra messaggi audio e di testo.

Raccolte che contengono questa guida

Questa guida fa parte di queste raccolte di guide rapide selezionate che coprono obiettivi di sviluppo Android più ampi:

Elenchi e griglie consentono alla tua app di mostrare le raccolte in un formato piacevole dal punto di vista visivo e facilmente fruibile dagli utenti.
Scopri come le funzioni composable possono aiutarti a creare facilmente magnifici componenti dell'interfaccia utente basati sul sistema di progettazione Material Design.
Questa serie di video introduce varie API Compose, mostrando rapidamente cosa è disponibile e come utilizzarle.

Domande o feedback

Visita la nostra pagina delle domande frequenti e scopri le guide rapide o contattaci per farci sapere cosa ne pensi.