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.

Risultati

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

Compatibilità con la versione

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

Dipendenze

Aggiungere più tipi di elementi

Puoi specificare il tipo di contenuto 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 sul codice

  • Specifica il tipo di contenuto 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 AudioMessage composable.
  • Compose riutilizza i composable sottoposti a rendering per ogni elemento di un determinato tipo di contenuto.

Raccolte che contengono questa guida

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

Gli elenchi e le griglie consentono alla tua app di mostrare le raccolte in una forma visivamente accattivante e facile da utilizzare per gli utenti.
Scopri come le funzioni composable possono consentirti di creare facilmente componenti UI accattivanti basati sul sistema di progettazione Material Design system.
Questa serie di video introduce varie API Compose, mostrando rapidamente cosa è disponibile e come utilizzarle.

Hai domande o feedback

Visita la nostra pagina delle domande frequenti e scopri le guide rapide oppure contattaci e comunicaci la tua opinione.