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
contentTypedansitems(). - Mappe chaque type de contenu à un composable correspondant. Par exemple,
Audioest uncontentTypedé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