Card composable به عنوان یک محفظه طراحی متریال برای رابط کاربری شما عمل می کند. کارت ها معمولاً یک محتوای منسجم را ارائه می دهند. در زیر چند نمونه از مواردی که ممکن است از کارت استفاده کنید آمده است:
- یک محصول در یک اپلیکیشن خرید.
- یک خبر در یک اپلیکیشن خبری.
- یک پیام در یک برنامه ارتباطی
تمرکز روی نمایش یک محتوا است که Card از سایر کانتینرها متمایز می کند. به عنوان مثال، Scaffold ساختار کلی را برای یک صفحه نمایش کامل فراهم می کند. کارت معمولاً یک عنصر رابط کاربری کوچکتر در یک طرحبندی بزرگتر است، در حالی که یک مؤلفه طرحبندی مانند Column یا Row یک API سادهتر و عمومیتر ارائه میدهد.
پیاده سازی اساسی
Card بسیار شبیه سایر کانتینرها در Compose عمل می کند. شما محتوای آن را با فراخوانی سایر اجزای سازنده درون آن اعلام می کنید. به عنوان مثال، در نظر بگیرید که چگونه Card شامل یک تماس به Text در مثال حداقل زیر است:
@Composable
fun CardMinimalExample() {
Card() {
Text(text = "Hello, world!")
}
}
پیاده سازی های پیشرفته
مرجع تعریف API Card را ببینید. چندین پارامتر را تعریف می کند که به شما امکان می دهد ظاهر و رفتار جزء را سفارشی کنید.
برخی از پارامترهای کلیدی که باید به آنها توجه داشت به شرح زیر است:
-
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 اختصاصی composable استفاده کنید.
می توانید از ویژگی elevation برای کنترل ظاهر 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 استفاده کنید.
@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, ) } }
این پیاده سازی به صورت زیر ظاهر می شود:

محدودیت ها
کارتها با پیمایش ذاتی یا رد کردن کنشها ارائه نمیشوند، اما میتوانند در ترکیبهایی که این ویژگیها را ارائه میدهند، ادغام شوند. به عنوان مثال، برای پیاده سازی Swipe to dismiss روی کارت، آن را با SwipeToDismiss composable ادغام کنید. برای ادغام با اسکرول، از اصلاح کننده های اسکرول مانند verticalScroll استفاده کنید. برای اطلاعات بیشتر به مستندات اسکرول مراجعه کنید.