Card 可組合函式可做為 UI 的 Material Design 容器。資訊卡通常會呈現單一連貫的內容。以下是可能使用資訊卡的例子:
- 購物應用程式中的產品。
- 新聞應用程式中的新聞報導。
- 通訊應用程式中的訊息。
Card 與其他容器的不同之處,在於它著重於呈現單一內容。例如,Scaffold 可為整個畫面提供一般結構。資訊卡通常是較大版面配置中的較小 UI 元素,而 Column 或 Row 等版面配置元件則提供更簡單、更通用的 API。
基本實作方式
Card 的行為與 Compose 中的其他容器非常相似。您可以呼叫其中的其他可組合函式,宣告其內容。舉例來說,請參考以下精簡範例,瞭解 Card 如何包含對 Text 的呼叫:
@Composable
fun CardMinimalExample() {
Card() {
Text(text = "Hello, world!")
}
}
進階導入
如需 Card 的 API 定義,請參閱參考資料。它定義了多個參數,可讓您自訂元件的外觀和行為。
請注意以下幾個重要參數:
elevation:為元件加上陰影,使其看起來高於背景。colors:使用CardColors類型設定容器和任何子項的預設顏色。enabled:如果為這個參數傳遞false,資訊卡會顯示為停用,且不會回應使用者輸入內容。onClick:一般來說,Card不接受點擊事件。因此,您需要注意的主要超載是定義onClick參數的超載。如果您希望Card的實作項目回應使用者的按下動作,請使用這個超載。
以下範例說明如何使用這些參數,以及其他常見參數,例如 shape 和 modifier。
填滿資訊卡
以下範例說明如何實作填滿資訊卡。
這裡的關鍵是使用 colors 屬性變更填滿顏色。
@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, ) } }
實作方式如下:

Elevated 卡
下列程式碼片段示範如何實作浮動式資訊卡。使用專屬的 ElevatedCard 可組合項。
您可以使用 elevation 屬性控制高度和陰影的外觀。
@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, ) } }
實作方式如下:

有外框的資訊卡
以下是外框卡片的範例。使用專屬的 OutlinedCard 可組合函式。
@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, ) } }
實作方式如下:
限制
資訊卡不含固有的捲動或關閉動作,但可整合至提供這些功能的可組合項。舉例來說,如要在資訊卡上實作滑動關閉功能,請將其與 SwipeToDismiss 可組合項整合。如要與捲動功能整合,請使用捲動修飾符,例如 verticalScroll。詳情請參閱捲動說明文件。