In Jetpack Compose Glimmer dient die Card Komponente als primärer
Container für zugehörige Inhalte und schafft eine klare visuelle Abgrenzung für verständliche
Informationseinheiten. Karten sind sehr anpassungsfähig und unterstützen Kombinationen aus Hauptinhalten, optionalen Titeln, Untertiteln und vorangestellten oder nachgestellten Symbolen. Karten füllen standardmäßig die maximal verfügbare Breite aus, sind fokussierbar und können auch klickbar gemacht werden. Karten unterstützen eine vertikale Anordnung, bei der das Headerbild oben steht, gefolgt von Titel, Untertitel und Hauptinhalt.
Karten basieren auf dem Jetpack Compose Glimmer Oberflächensystem und übernehmen daher physikalische Eigenschaften wie Tiefeneffekte, Clipping und konsistente Rahmen hervorhebungen.
Anatomie und Slots
Eine Jetpack Compose Glimmer-Karte besteht aus mehreren speziellen Elementen, mit denen Sie Inhalt und Layout anpassen können.
| Slot | Beschreibung |
|---|---|
Header |
Der obere Bereich der Karte, der ein Bild enthalten soll. |
Titel und Untertitel |
Diese Textfelder enthalten die Haupt- und Sekundärlabels für die Karte. Der Titel wird über dem Untertitel platziert. |
Vorangestelltes Symbol |
Ein optionales Symbol (in der Regel ein |
Nachgestelltes Symbol |
Ein optionales Symbol, das am Ende des Inhaltsbereichs der Karte angezeigt wird. |
Aktion |
Ein Slot für ein primäres interaktives Element wie ein |
Hauptinhalt |
Der Hauptteil der Karte für primären |
Standardwerte für Karten
Für Karten gelten die folgenden Standardwerte:
- Breite: Karten füllen die maximal verfügbare Breite des Displays aus, um die Lesbarkeit auf Displaybrillen zu optimieren.
- Mindesthöhe:
80.dp - Vertikaler Abstand zwischen Texten:
3.dp - Headerform: Verwendet
RoundedCornerShapemit24.dp-Ecken - Abstand für Inhalte: Standardmäßig
GlimmerTheme.componentSpacingValues.medium. Dies wirkt sich auf den äußersten Abstand um Headerbilder und den Inhaltscontainer aus. - Form: Standardmäßig
GlimmerTheme.shapes.medium. Textrendering: Verwendet die Standardwerte aus
GlimmerTheme.typographyfür die folgenden Slots:- Titel:
bodyMedium - Untertitel:
caption - Hauptinhalt:
bodySmall
- Titel:
Beispiel: Einfache Karte
Mit dem folgenden Code wird eine einfache Karte erstellt:
@Composable fun CardSample() { Card { Text("This is a card") } }
Beispiel: Komplexe Karte mit mehreren Slots
Der folgende Code zeigt, wie Sie mehrere Slots zusammen verwenden, um eine Karte zu erstellen.
@Composable fun CardWithTitleAndLeadingIconAndHeaderAndAction() { Card( action = { Button(onClick = {}, trailingIcon = { Icon(FavoriteIcon, "Localized description") }) { Text("Send") } }, title = { Text("Title") }, leadingIcon = { Icon(FavoriteIcon, "Localized description") }, header = { Image(MyHeaderImage, "Localized description", contentScale = ContentScale.FillWidth) }, ) { Text("This is a card with a title, leading icon, header image, and action") } }
Wichtige Informationen zum Code
- Zeigt, wie Sie verschiedene Kartenelemente wie
header,title,leadingIconundactionverwenden, um Inhalt und Struktur der Karte anzupassen. - Verwendet die Standardüberladung von
Cardmit einer Aktion, da nur die Karte (oder ihre interne Aktion) fokussierbar sein muss. Wenn Sie die gesamte Kartenoberfläche interaktiv gestalten möchten, verwenden Sie stattdessen dieCardÜberladung mitonClick. - Diese Karte verwendet einen Aktionsslot. Daher ist die Kartenoberfläche nicht fokussierbar und der Fokus wird stattdessen auf den Aktionsbutton gerichtet.