android compose Card 卡片 使用

android compose Card 卡片 使用

android compose Card 卡片 使用

以下是一些需要注意的关键参数:

  • elevation:为组件添加阴影,使其看起来高于背景。
  • colors:使用CardColors类型设置容器和所有子项的默认颜色。
  • enabled:如果您为此参数传递false,则卡片会显示为已停用,并且不会响应用户输入。
  • onClick:通常情况下,Card不接受点击事件。因此,您需要注意的主要重载是定义了onClick参数的重载。如果您希望Card的实现响应用户的按压操作,则应使用此重载。

package com.wn.androidcomposedemo1.basegoogle import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.material3.Card import androidx.compose.material3.CardDefaults import androidx.compose.material3.CardElevation import androidx.compose.material3.ElevatedCard import androidx.compose.material3.MaterialTheme import androidx.compose.material3.OutlinedCard import androidx.compose.material3.Surface import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.wn.androidcomposedemo1.ui.theme.AndroidComposeDemo1Theme /** * Author : wn * Email : maoning20080808@163.com * Date : 2026/6/22 21:03 * Description : 卡片 */ class CardActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { CardExample() } } @Preview @Composable fun CardExample(){ Column( modifier = Modifier.padding(start = 20.dp, top = 20.dp) ) { FilledCardExample() Spacer(modifier = Modifier.height(20.dp)) ElevatedCardExample() Spacer(modifier = Modifier.height(20.dp)) OutlinedCardExample() } } @Preview @Composable fun OutlinedCardExample(){ OutlinedCard( border = BorderStroke(3.dp, Color.Black), colors = CardDefaults.cardColors( containerColor = Color.Blue ), modifier = Modifier.size(width = 240.dp, height = 100.dp) ) { Text( text = "Outlined - 轮廓卡片", modifier = Modifier.padding(16.dp), textAlign = TextAlign.Center ) } } @Preview @Composable fun ElevatedCardExample(){ ElevatedCard ( elevation = CardDefaults.cardElevation( defaultElevation = 36.dp ), colors = CardDefaults.cardColors( containerColor = Color.Green ), modifier = Modifier.size(width = 240.dp, height = 100.dp) ) { Text( text = "Filled - 上层卡片", modifier = Modifier.padding(16.dp), textAlign = TextAlign.Center ) } } @Preview @Composable fun FilledCardExample(){ Card( colors = CardDefaults.cardColors( //containerColor = MaterialTheme.colorScheme.surfaceVariant containerColor = Color.Red ), modifier = Modifier.size(width = 240.dp, height = 100.dp) ) { Text( text = "Filled - 填充卡片", modifier = Modifier.padding(16.dp), textAlign = TextAlign.Center ) } } }