Dans Jetpack Compose Glimmer, le Card composant sert de conteneur principal
pour le contenu associé, créant une limite visuelle claire pour les unités d'informations digestes. Les cartes sont très adaptables et prennent en charge des combinaisons de contenu principal, de titres facultatifs, de sous-titres et d'icônes de début ou de fin. Les cartes remplissent par défaut la largeur maximale disponible, sont ciblables et vous pouvez également les rendre cliquables. Les cartes sont disposées verticalement, l'image d'en-tête étant en haut, suivie du titre, du sous-titre et du corps du contenu.
Les cartes sont basées sur le système de surface Jetpack Compose Glimmer. Elles héritent donc de propriétés physiques telles que les effets de profondeur, le découpage et les mises en évidence cohérentes des bordures .
Anatomie et emplacements
Une carte Jetpack Compose Glimmer est composée de plusieurs éléments spécialisés qui vous permettent de personnaliser son contenu et sa mise en page.
| Encoche | Description |
|---|---|
En-tête |
Section supérieure de la carte, conçue pour contenir une image. |
Titre et sous-titre |
Ces champs de texte fournissent les libellés principal et secondaire de la carte. Le titre est placé au-dessus du sous-titre. |
Icône précédant le texte |
Icône facultative (généralement une |
Icône suivant le texte |
Icône facultative qui apparaît à la fin de la zone de contenu de la carte. |
Contenu principal |
Corps principal de la carte pour le |
Valeurs par défaut des cartes
Les valeurs par défaut suivantes s'appliquent aux cartes :
- Largeur : les cartes remplissent la largeur maximale disponible de l'écran pour optimiser la lisibilité sur les lunettes d'affichage.
- Hauteur minimale :
80.dp - Espacement vertical du texte :
3.dp - Forme de l'en-tête : utilise
RoundedCornerShapeavec des angles de24.dp - Marge intérieure du contenu : par défaut
GlimmerTheme.componentSpacingValues.medium. Cela affecte la marge intérieure la plus externe autour des images d'en-tête et du conteneur de contenu. - Forme : par défaut,
GlimmerTheme.shapes.medium. Rendu du texte : utilise les valeurs par défaut de
GlimmerTheme.typographypour les emplacements suivants :- Titre :
bodyMedium - Sous-titre :
caption - Contenu principal :
bodySmall
- Titre :
Exemple : Carte de base
Le code suivant montre le code minimal nécessaire pour créer une carte :
Card { Text("This is a card") }
Exemple : Carte avec plusieurs emplacements
Le code suivant montre comment utiliser plusieurs emplacements ensemble pour créer une carte :
Card( title = { Text("Card Title", style = GlimmerTheme.typography.titleMedium) }, subtitle = { Text("Sub-heading text", style = GlimmerTheme.typography.titleSmall) }, leadingIcon = { Icon(FavoriteIcon, contentDescription = "Favorite") }, trailingIcon = { Icon(BookmarkIcon, contentDescription = "Bookmark") }, header = { Image( painter = myHeaderImage, contentDescription = "Header image", contentScale = ContentScale.FillWidth ) }, ) { Text("This is a complete card") }
Points clés concernant le code
- Montre comment utiliser différents éléments de carte, tels que
title,subtitleetleadingIcon, pour personnaliser le contenu et la structure de la carte. - Utilise la surcharge
CardaveconClickpour rendre l'ensemble de la surface de la carte interactive.
Fiches d'action
Si vous souhaitez inclure un bouton d'action avec une carte, utilisez un
ActionCard. Les fiches d'action comportent les mêmes éléments que les cartes standards et incluent également un paramètre action supplémentaire qui définit le bouton inférieur.
ActionCard dans Jetpack Compose Glimmer.Exemple : Fiche d'action de base
Ce code montre comment créer une ActionCard :
ActionCard( action = { Button(onClick = {}, trailingIcon = { Icon(FavoriteIcon, "Localized description") }) { Text("Send") } } ) { Text("This is a card with a title, leading icon, header image, and action") }
Exemple : Fiche d'action avec une icône
Ce code montre comment créer une ActionCard plus complexe avec des icônes :
ActionCard( title = { Text("Card Title", style = GlimmerTheme.typography.titleMedium) }, subtitle = { Text("Sub-heading text", style = GlimmerTheme.typography.titleSmall) }, leadingIcon = { Icon(FavoriteIcon, contentDescription = "Favorite") }, header = { Image( painter = myHeaderImage, contentDescription = "Header image", contentScale = ContentScale.FillWidth ) }, action = { Button(onClick = { /* Handle action */ }) { Text("Action") } } ) { Text( "This is the main body content of the card, utilizing theme-tokens for consistent styling.", style = GlimmerTheme.typography.bodyMedium ) }