Académique Documents
Professionnel Documents
Culture Documents
Carte
Le composable Card
(https://developer.android.com/reference/kotlin/androidx/compose/material3/package-summary?
hl=fr#Card(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Shape,androidx.compose.ma
terial3.CardColors,androidx.compose.material3.CardElevation,androidx.compose.foundation.BorderStr
oke,kotlin.Function1))
se comporte comme un conteneur Material Design pour votre interface utilisateur. Les
cartes présentent un seul élément de contenu cohérent. Voici quelques exemples
d'utilisation d'une carte :
Ce qui différencie Card des autres conteneurs est le fait qu'il ne présente qu'un seul
élément de contenu. Par exemple, Scaffold fournit une structure générale pour un écran
entier. Une carte est généralement un élément d'interface utilisateur plus petit à
l'intérieur d'une mise en page conséquente, tandis qu'un composant de mise en page
comme Column ou Row offre une API plus simple et plus générique.
Implémentation de base
Card se comporte comme les autres conteneurs dans Compose. Vous déclarez son
contenu en appelant d'autres composables dans ce conteneur. Par exemple, observez
comment Card contient un appel à Text dans le court exemple suivant :
https://developer.android.com/jetpack/compose/components/card?hl=fr 1/7
08/12/2023 20:16 Carte | Jetpack Compose | Android Developers
@Composable
fun CardMinimalExample() {
Card() {
Text(text = "Hello, world!")
}
}
Remarque : Par défaut, une Card encapsule son contenu dans un composable Column, en plaçant
chaque élément à l'intérieur de la carte les uns en dessous des autres.
Implémentations avancées
Consultez la documentation de référence
(https://developer.android.com/reference/kotlin/androidx/compose/material3/package-summary?
hl=fr#Card(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Shape,androidx.compose.ma
terial3.CardColors,androidx.compose.material3.CardElevation,androidx.compose.foundation.BorderStr
oke,kotlin.Function1))
pour la définition de l'API de Card . Elle définit plusieurs paramètres afin de vous
permettre de personnaliser l'apparence et le comportement du composant.
colors : utilise le type CardColors pour définir la couleur par défaut du conteneur
et des enfants.
onClick : en général, une Card n'accepte pas les événements de clic. Ainsi, la
première surcharge à noter est celle qui définit un paramètre onClick . Vous devez
utiliser cette surcharge si vous souhaitez que votre implémentation de Card
réponde aux interactions de l'utilisateur avec son écran.
L'exemple suivant montre comment utiliser ces paramètres, ainsi que d'autres
paramètres communs tels que shape et modifier .
https://developer.android.com/jetpack/compose/components/card?hl=fr 2/7
08/12/2023 20:16 Carte | Jetpack Compose | Android Developers
Carte pleine
Voici un exemple d'implémentation d'une carte pleine.
La clé ici est d'utiliser la propriété colors afin de changer la couleur de remplissage.
@Composable
fun FilledCardExample() {
Card(
colors = CardDefaults.cardColors(
containerColor = MaterialTheme.colorScheme.surfaceVariant,
),
modifier = Modifier
.size(width = 240.dp, height = 100.dp)
) {
Text(
text = "Filled",
modifier = Modifier
.padding(16.dp),
textAlign = TextAlign.Center,
)
}
}
de/compose/snippets/src/main/java/com/example/compose/snippets/components/Card.kt#L108-L124)
https://developer.android.com/jetpack/compose/components/card?hl=fr 3/7
08/12/2023 20:16 Carte | Jetpack Compose | Android Developers
Carte surélevée
L'extrait de code suivant montre comment implémenter une carte surélevée. Utilisez le
composable ElevatedCard
(https://developer.android.com/reference/kotlin/androidx/compose/material3/package-summary?
hl=fr#ElevatedCard(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Shape,androidx.com
pose.material3.CardColors,androidx.compose.material3.CardElevation,kotlin.Function1))
prévu à cet effet.
@Composable
fun ElevatedCardExample() {
ElevatedCard(
elevation = CardDefaults.cardElevation(
defaultElevation = 6.dp
),
modifier = Modifier
.size(width = 240.dp, height = 100.dp)
) {
Text(
text = "Elevated",
modifier = Modifier
.padding(16.dp),
textAlign = TextAlign.Center,
)
}
}
7de/compose/snippets/src/main/java/com/example/compose/snippets/components/Card.kt#L87-L103)
https://developer.android.com/jetpack/compose/components/card?hl=fr 4/7
08/12/2023 20:16 Carte | Jetpack Compose | Android Developers
@Composable
fun OutlinedCardExample() {
OutlinedCard(
colors = CardDefaults.cardColors(
containerColor = MaterialTheme.colorScheme.surface,
),
border = BorderStroke(1.dp, Color.Black),
modifier = Modifier
.size(width = 240.dp, height = 100.dp)
) {
Text(
text = "Outlined",
modifier = Modifier
.padding(16.dp),
textAlign = TextAlign.Center,
)
}
}
de/compose/snippets/src/main/java/com/example/compose/snippets/components/Card.kt#L129-L146)
https://developer.android.com/jetpack/compose/components/card?hl=fr 5/7
08/12/2023 20:16 Carte | Jetpack Compose | Android Developers
Limites
Les cartes ne sont pas dotées d'actions "faire défiler" et "ignorer" inhérentes, mais elles
peuvent être intégrées à des composables offrant ces fonctionnalités. Par exemple, pour
implémenter la fonctionnalité "balayer pour ignorer" sur une carte, intégrez-la avec le
composable SwipeToDismiss
(https://developer.android.com/reference/kotlin/androidx/compose/material3/package-summary?
hl=fr#SwipeToDismiss(androidx.compose.material3.DismissState,kotlin.Function1,kotlin.Function1,andr
oidx.compose.ui.Modifier,kotlin.collections.Set))
. Pour l'intégrer avec le défilement, utilisez des modificateurs de défilement comme
verticalScroll
(https://developer.android.com/reference/kotlin/androidx/compose/foundation/package-summary?
hl=fr#
(androidx.compose.ui.Modifier).verticalScroll(androidx.compose.foundation.ScrollState,kotlin.Boolean,
androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean))
. Pour plus d'informations, consultez la documentation relative au défilement
(https://developer.android.com/jetpack/compose/touch-input/pointer-input/scroll?hl=fr).
Ressources supplémentaires
Documentation sur les interfaces utilisateur Material
(https://m3.material.io/components/cards/overview)
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de
contenu (https://developer.android.com/license?hl=fr). Java et OpenJDK sont des marques ou des
marques déposées d'Oracle et/ou de ses sociétés affiliées.
https://developer.android.com/jetpack/compose/components/card?hl=fr 6/7
08/12/2023 20:16 Carte | Jetpack Compose | Android Developers
https://developer.android.com/jetpack/compose/components/card?hl=fr 7/7