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 contenus mixtes tels que du texte, des images et des éléments interactifs.

Résultats

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

Compatibilité des versions

Cette implémentation nécessite que le minSDK de votre projet soit défini 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é à un composable AudioMessage.
  • Compose réutilise les composables affichés pour chaque élément d'un type de contenu donné.

Collections contenant ce guide

Ce guide fait partie des collections de guides de démarrage rapide organisé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 agréable et facile à consulter pour les utilisateurs.
Découvrez comment les fonctions composables peuvent vous permettre de créer facilement de magnifiques composants d'UI basés sur le système de conception Material Design.
Cette série de vidéos présente différentes API Compose, en vous montrant rapidement ce qui est disponible et comment les utiliser.

Vous avez des questions ou des commentaires ?

Consultez notre page de questions fréquentes et découvrez nos guides rapides. Vous pouvez également nous contacter pour nous faire part de vos commentaires.