Créer une liste à l'aide de plusieurs types d'éléments

Vous pouvez utiliser une liste avec plusieurs types d'éléments pour afficher des types de contenu mixtes, tels que du texte, des images et des éléments interactifs.

Compatibilité des versions

Cette implémentation nécessite que la version minimale du SDK de votre projet soit définie sur le niveau d'API 21 ou supérieur.

Dépendances

Ajouter plusieurs types d'articles

Vous pouvez spécifier le type de contenu pour chaque élément de la mise en page lorsque vous composez une liste ou une grille avec plusieurs types d'éléments:

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

Points clés concernant le code

  • Spécifie le type de contenu pour chaque élément en définissant contentType dans items().
  • Mappe chaque type de contenu à un composable correspondant. Par exemple, Audio est un contentType défini ailleurs et mappé sur un composable AudioMessage.
  • Compose réutilise les composables affichés pour chaque élément d'un type de contenu donné.

Résultats

Sortie de code affichant des messages audio et textuels
Figure 1. Sortie de code affichant des messages audio et textuels.

Collections contenant ce guide

Ce guide fait partie de ces collections de guides rapides sélectionnées qui couvrent des objectifs de développement Android plus larges:

Les listes et les grilles permettent à votre application d'afficher des collections sous une forme visuellement attrayante et facile à utiliser pour les utilisateurs.
Découvrez comment les fonctions composables peuvent vous permettre de créer facilement de beaux composants d'interface utilisateur basés sur le système de conception Material Design.
Cette série de vidéos présente différentes API Compose, vous montrant rapidement ce qui est disponible et comment les utiliser.

Vous avez des questions ou des commentaires ?

Consultez notre page des questions fréquentes et découvrez les guides rapides, ou contactez-nous pour nous faire part de vos commentaires.