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
dansitems()
. - Mappe chaque type de contenu à un composable correspondant. Par exemple,
Audio
est uncontentType
défini ailleurs et mappé sur un composableAudioMessage
. - Compose réutilise les composables affichés pour chaque élément d'un type de contenu donné.
Résultats

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:

Afficher une liste ou une grille

Afficher des composants interactifs
