W Jetpack Compose Glimmer komponent Card służy jako główny
kontener powiązanych treści, tworząc wyraźną granicę wizualną dla łatwo przyswajalnych
jednostek informacji. Karty są bardzo elastyczne i obsługują kombinacje treści głównych, opcjonalnych tytułów, podtytułów oraz ikon głównych i końcowych. Domyślnie karty wypełniają maksymalną dostępną szerokość, można je zaznaczać, a także klikać. Karty obsługują układ pionowy, w którym obraz nagłówka znajduje się na górze, a następnie tytuł, podtytuł i treść.
Karty są oparte na systemie powierzchni Jetpack Compose Glimmer surface system, dzięki czemu dziedziczą właściwości fizyczne, takie jak efekty głębi, przycinanie i spójne wyróżnienia obramowania.
Anatomia i boksy
Karta Jetpack Compose Glimmer jest zbudowana z kilku wyspecjalizowanych elementów, które umożliwiają dostosowanie jej treści i układu.
| Boks | Opis |
|---|---|
Nagłówek |
Górna część karty, przeznaczona na obraz. |
Tytuł i podtytuł |
Te pola tekstowe zawierają etykiety główne i dodatkowe karty. Tytuł znajduje się nad podtytułem. |
Ikona główna |
Opcjonalna ikona (zwykle |
Ikona końcowa |
Opcjonalna ikona, która pojawia się na końcu obszaru treści karty. |
Działanie |
Boks na główny element interaktywny, np. |
Główna część strony |
Główna część karty na podstawowy |
Domyślne ustawienia karty
W przypadku kart obowiązują te ustawienia domyślne:
- Szerokość: karty wypełniają maksymalną dostępną szerokość wyświetlacza, aby zoptymalizować czytelność na okularach z wyświetlaczem.
- Minimalna wysokość:
80.dp - Odstępy pionowe tekstu:
3.dp - Kształt nagłówka: używa
RoundedCornerShapez rogami24.dp - Dopełnienie treści: domyślnie
GlimmerTheme.componentSpacingValues.medium. Wpływa to na zewnętrzne dopełnienie wokół obrazów nagłówka i kontenera treści. - Kształt: domyślnie
GlimmerTheme.shapes.medium. Renderowanie tekstu: używa wartości domyślnych z
GlimmerTheme.typographyw przypadku tych boksów:- Tytuł:
bodyMedium - Podtytuł:
caption - Główna część strony:
bodySmall
- Tytuł:
Przykład: podstawowa karta
Ten kod tworzy podstawową kartę:
@Composable fun CardSample() { Card { Text("This is a card") } }
Przykład: złożona karta z kilkoma boksami
Ten kod pokazuje, jak używać kilku boksów razem, aby utworzyć kartę.
@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") } }
Najważniejsze informacje o kodzie
- Pokazuje, jak wykorzystać różne elementy karty, takie jak
header,title,leadingIconiaction, aby dostosować treść i strukturę karty. - Używa standardowego
Cardprzeciążenia z działaniem, ponieważ tylko karta (lub jej wewnętrzne działanie) musi być zaznaczana. Jeśli chcesz, aby cała powierzchnia karty była interaktywna, użyjCardprzeciążenia zonClickzamiast. - Ta karta używa boksu działania, więc powierzchnia karty nie jest możliwa do zaznaczenia, a zaznaczenie jest kierowane do przycisku polecenia.