Die zusammensetzbare Funktion Card
dient als Material Design-Container für Ihre UI.
Infokarten enthalten in der Regel einen zusammenhängenden Inhalt. Im Folgenden finden Sie
Beispiele für die Verwendung einer Karte:
- Ein Produkt in einer Shopping-App.
- Eine Nachrichtenmeldung in einer Nachrichten-App.
- Eine Nachricht in einer Kommunikations-App.
Der Fokus liegt auf der Darstellung eines einzelnen Inhalts, der
Card
aus anderen Containern. Scaffold
bietet beispielsweise die allgemeine Struktur für einen ganzen Bildschirm. Die Karte ist in der Regel ein kleineres UI-Element in einem größeren
Layout, während eine Layoutkomponente wie Column
oder Row
ein einfacheres
und einer generischen API.
Einfache Implementierung
Card
verhält sich weitgehend wie andere Container in Compose. Sie deklarieren deren Inhalt durch
und rufen andere zusammensetzbare Funktionen auf. Sehen wir uns zum Beispiel an, wie Card
einen
Aufruf von Text
im folgenden Minimalbeispiel:
@Composable
fun CardMinimalExample() {
Card() {
Text(text = "Hello, world!")
}
}
Erweiterte Implementierungen
Die API-Definition von Card
finden Sie in der Referenz. Es werden mehrere Parameter definiert, mit denen Sie das Aussehen und Verhalten der Komponente anpassen können.
Folgende wichtige Parameter sind zu beachten:
elevation
: Fügt der Komponente einen Schatten hinzu, der sie erscheinen lässt. über dem Hintergrund.colors
: Verwendet den TypCardColors
, um die Standardfarbe beider Elemente festzulegen den Container und alle untergeordneten Elemente.enabled
: Wenn Siefalse
für diesen Parameter übergeben, wird die Karte so angezeigt: deaktiviert und reagiert nicht auf Nutzereingaben.onClick
: Normalerweise akzeptiert eineCard
keine Click-Events. Daher sollten Sie sich die primäre Überladung merken, bei der einonClick
-Parameter definiert wird. Sie sollten diese Überlastung nutzen, Implementierung vonCard
, um auf das Drücken des Nutzers zu reagieren.
Im folgenden Beispiel wird gezeigt, wie Sie diese Parameter sowie andere gängige Parameter wie shape
und modifier
verwenden können.
Ausgefüllte Karte
Das folgende Beispiel zeigt, wie Sie eine ausgefüllte Karte implementieren können.
Entscheidend ist hier die Verwendung der Eigenschaft colors
, um das ausgefüllte Feld
Farbe.
@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, ) } }
Diese Implementierung sieht so aus:
Erhöhte Karte
Das folgende Snippet zeigt, wie eine Karte mit erweiterten Rechten implementiert wird. Verwenden Sie die Methode
dedizierten zusammensetzbaren ElevatedCard
-Element.
Mit der Eigenschaft elevation
können Sie die Darstellung von Höhen- und
den sich ergebenden Schatten.
@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, ) } }
Diese Implementierung sieht so aus:
Karte mit Umriss
Das folgende Beispiel zeigt eine umrissene Karte. Verwenden Sie die spezielle OutlinedCard
-Komponente.
@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, ) } }
Diese Implementierung sieht so aus:
Beschränkungen
Karten haben keine integrierten Scroll- oder Schließaktionen, können aber in Kompositionen eingebunden werden, die diese Funktionen bieten. Um beispielsweise die Wischgeste zum Schließen
können Sie sie in die zusammensetzbare Funktion SwipeToDismiss
einbinden. So integrieren Sie
mit Scroll-Modifikatoren wie verticalScroll
. Siehe Scroll-
in der Dokumentation.