Das Card
-Element dient als Material Design-Container für Ihre Benutzeroberfläche.
Karten enthalten in der Regel einen einzelnen zusammenhängenden Inhalt. Im Folgenden finden Sie einige Beispiele für Anwendungsfälle:
- Ein Produkt in einer Shopping-App.
- Eine Nachrichtenmeldung in einer Nachrichten-App.
- Eine Nachricht in einer Kommunikations-App.
Card
zeichnet sich durch den Fokus auf die Darstellung eines einzelnen Inhalts aus. Scaffold
bietet beispielsweise die allgemeine Struktur für einen ganzen Bildschirm. Eine Karte ist in der Regel ein kleineres UI-Element in einem größeren Layout, während eine Layoutkomponente wie Column
oder Row
eine einfachere und allgemeinere API bietet.
Einfache Implementierung
Card
verhält sich weitgehend wie andere Container in Compose. Sie deklarieren den Inhalt, indem Sie andere composables darin aufrufen. Im folgenden Minimalbeispiel enthält Card
beispielsweise einen Aufruf von Text
:
@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.
Einige wichtige Parameter sind:
elevation
: Fügen Sie der Komponente einen Schatten hinzu, wodurch sie über dem Hintergrund hervorgehoben wird.colors
: Mit dem TypCardColors
wird die Standardfarbe sowohl des Containers als auch aller untergeordneten Elemente festgelegt.enabled
: Wenn Sie für diesen Parameterfalse
übergeben, wird die Karte als deaktiviert angezeigt und reagiert nicht auf Nutzereingaben.onClick
: Normalerweise werden fürCard
keine Klickereignisse akzeptiert. Daher sollten Sie sich die primäre Überladung merken, bei der einonClick
-Parameter definiert wird. Sie sollten diese Überladung verwenden, wenn Ihre Implementierung vonCard
auf Tastendrücke des Nutzers reagieren soll.
Im folgenden Beispiel wird gezeigt, wie Sie diese Parameter sowie andere gängige Parameter wie shape
und modifier
verwenden können.
Ausgefüllte Karte
Im Folgenden finden Sie ein Beispiel für die Implementierung einer ausgefüllten Karte.
Der Schlüssel ist hier die Verwendung des Attributs colors
, um die Füllungsfarbe zu ändern.
@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 erweiterte Karte implementiert wird. Verwenden Sie die spezielle ElevatedCard
-Komposition.
Mit der Property elevation
können Sie die Darstellung der Höhe und den resultierenden Schatten steuern.
@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:
Umrandete Karte
Im Folgenden sehen Sie ein Beispiel für eine Karte mit Umriss. 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. Wenn Sie beispielsweise die Wischgeste zum Schließen einer Karte implementieren möchten, integrieren Sie sie in das SwipeToDismiss
-Komposit. Wenn du die Funktion mit dem Scrollen verknüpfen möchtest, verwende Scroll-Modifikatoren wie verticalScroll
. Weitere Informationen finden Sie in der Dokumentation zum Scrollen.