Jetpack Compose Glimmer에서 Card 구성요소는 관련 콘텐츠의 기본
컨테이너 역할을 하며 이해하기 쉬운
정보 단위의 명확한 시각적 경계를 만듭니다. 카드는 적응성이 뛰어나 기본 콘텐츠, 선택적 제목, 부제목, 선행 또는 후행 아이콘의 조합을 지원합니다. 카드는 기본적으로 사용 가능한 최대 너비를 채우고 포커스를 지정할 수 있으며 클릭 가능하도록 만들 수도 있습니다. 카드는 헤더 이미지가 맨 위에 있고 그 뒤에 제목, 부제목, 본문 콘텐츠가 오는 세로 정렬을 지원합니다.
카드는 Jetpack Compose Glimmer 서피스 시스템을 기반으로 빌드되므로 깊이 효과, 클리핑, 일관된 테두리 강조표시 와 같은 물리적 속성을 상속합니다.
해부 및 슬롯
Jetpack Compose Glimmer 카드는 콘텐츠와 레이아웃을 맞춤설정할 수 있는 여러 전문 요소로 구성됩니다.
| 슬롯 | 설명 |
|---|---|
헤더 |
이미지를 보관하도록 설계된 카드의 상단 섹션입니다. |
제목 및 부제목 |
이 텍스트 필드는 카드의 기본 및 보조 라벨을 제공합니다. 제목은 부제목 위에 배치됩니다. |
앞부분 아이콘 |
카드의 콘텐츠 영역 시작 부분에 표시되는 선택적 아이콘 ( |
뒷부분 아이콘 |
카드의 콘텐츠 영역 끝에 표시되는 선택적 아이콘입니다. |
기본 콘텐츠 |
기본 |
카드 기본값
다음 기본값이 카드에 적용됩니다.
- 너비: 카드는 디스플레이 글라스의 가독성을 최적화하기 위해 디스플레이의 사용 가능한 최대 너비를 채웁니다.
- 최소 높이:
80.dp - 텍스트 세로 간격:
3.dp - 헤더 도형:
RoundedCornerShape모서리가 있는24.dp를 사용합니다. - 콘텐츠 패딩: 기본값은
GlimmerTheme.componentSpacingValues.medium입니다. 이는 헤더 이미지와 콘텐츠 컨테이너 주변의 가장 바깥쪽 패딩에 영향을 미칩니다. - 도형: 기본값은
GlimmerTheme.shapes.medium입니다. 텍스트 렌더링: 다음 슬롯에
GlimmerTheme.typography의 기본값을 사용합니다.- 제목:
bodyMedium - 부제목:
caption - 기본 콘텐츠:
bodySmall
- 제목:
예: 기본 카드
다음 코드는 카드를 빌드하는 데 필요한 최소한의 코드를 보여줍니다.
Card { Text("This is a card") }
예: 슬롯이 여러 개인 카드
다음 코드는 여러 슬롯을 함께 사용하여 카드를 빌드하는 방법을 보여줍니다.
Card( title = { Text("Card Title", style = GlimmerTheme.typography.titleMedium) }, subtitle = { Text("Sub-heading text", style = GlimmerTheme.typography.titleSmall) }, leadingIcon = { Icon(FavoriteIcon, contentDescription = "Favorite") }, trailingIcon = { Icon(BookmarkIcon, contentDescription = "Bookmark") }, header = { Image( painter = myHeaderImage, contentDescription = "Header image", contentScale = ContentScale.FillWidth ) }, ) { Text("This is a complete card") }
코드 관련 핵심 사항
- `
title`, `subtitle`, `leadingIcon`과 같은 다양한 카드 요소를 사용하여 카드의 콘텐츠와 구조를 맞춤설정하는 방법을 보여줍니다. Card오버로드를onClick와 함께 사용하여 전체 카드 서피스를 대화형으로 만듭니다.
작업 카드
카드에 작업 버튼을 포함하려면
ActionCard를 사용합니다. 작업 카드에는 표준 카드와 동일한 요소가 있으며 하단 버튼을 정의하는 추가 action 매개변수도 포함됩니다.
ActionCard 예입니다.예: 기본 작업 카드
이 코드는 ActionCard를 만드는 방법을 보여줍니다.
ActionCard( action = { Button(onClick = {}, trailingIcon = { Icon(FavoriteIcon, "Localized description") }) { Text("Send") } } ) { Text("This is a card with a title, leading icon, header image, and action") }
예: 아이콘이 있는 작업 카드
이 코드는 아이콘이 있는 더 복잡한 ActionCard를 만드는 방법을 보여줍니다.
ActionCard( title = { Text("Card Title", style = GlimmerTheme.typography.titleMedium) }, subtitle = { Text("Sub-heading text", style = GlimmerTheme.typography.titleSmall) }, leadingIcon = { Icon(FavoriteIcon, contentDescription = "Favorite") }, header = { Image( painter = myHeaderImage, contentDescription = "Header image", contentScale = ContentScale.FillWidth ) }, action = { Button(onClick = { /* Handle action */ }) { Text("Action") } } ) { Text( "This is the main body content of the card, utilizing theme-tokens for consistent styling.", style = GlimmerTheme.typography.bodyMedium ) }