با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
Card composable به عنوان یک محفظه طراحی متریال برای رابط کاربری شما عمل می کند. کارت ها معمولاً یک محتوای منسجم را ارائه می دهند. در زیر چند نمونه از مواردی که ممکن است از کارت استفاده کنید آمده است:
یک محصول در یک اپلیکیشن خرید.
یک خبر در یک اپلیکیشن خبری.
یک پیام در یک برنامه ارتباطی
تمرکز روی نمایش یک محتوا است که Card از سایر کانتینرها متمایز می کند. به عنوان مثال، Scaffold ساختار کلی را برای یک صفحه نمایش کامل فراهم می کند. کارت معمولاً یک عنصر رابط کاربری کوچکتر در یک طرحبندی بزرگتر است، در حالی که یک مؤلفه طرحبندی مانند Column یا Row یک API سادهتر و عمومیتر ارائه میدهد.
شکل 1. نمونه ای از کارت پر شده با متن و نمادها.
پیاده سازی اساسی
Card بسیار شبیه سایر کانتینرها در Compose عمل می کند. شما محتوای آن را با فراخوانی سایر اجزای سازنده درون آن اعلام می کنید. به عنوان مثال، در نظر بگیرید که چگونه Card شامل یک تماس به Text در مثال حداقل زیر است:
مرجع تعریف API Card را ببینید. چندین پارامتر را تعریف می کند که به شما امکان می دهد ظاهر و رفتار جزء را سفارشی کنید.
برخی از پارامترهای کلیدی که باید به آنها توجه داشت به شرح زیر است:
elevation : سایه ای را به مولفه اضافه می کند که باعث می شود آن را در بالای پس زمینه مرتفع نشان دهد.
colors : از نوع CardColors برای تنظیم رنگ پیشفرض ظرف و هر فرزند استفاده میکند.
enabled : اگر این پارامتر را false ارسال کنید، کارت غیرفعال شده ظاهر می شود و به ورودی کاربر پاسخ نمی دهد.
onClick : معمولاً یک Card رویدادهای کلیک را نمی پذیرد. به این ترتیب، اضافه بار اولیه ای که می خواهید به آن توجه کنید همان چیزی است که یک پارامتر onClick را تعریف می کند. اگر میخواهید اجرای Card به فشارهای کاربر پاسخ دهد، باید از این اضافه بار استفاده کنید.
مثال زیر نشان می دهد که چگونه می توانید از این پارامترها و همچنین سایر پارامترهای رایج مانند shape و modifier استفاده کنید.
کارت پر شده
در زیر نمونه ای از نحوه پیاده سازی کارت پر شده آورده شده است.
نکته کلیدی در اینجا استفاده از ویژگی colors برای تغییر رنگ پر شده است.
کارتها با پیمایش ذاتی یا رد کردن کنشها ارائه نمیشوند، اما میتوانند در ترکیبهایی که این ویژگیها را ارائه میدهند، ادغام شوند. به عنوان مثال، برای پیاده سازی Swipe to dismiss روی کارت، آن را با SwipeToDismiss composable ادغام کنید. برای ادغام با اسکرول، از اصلاح کننده های اسکرول مانند verticalScroll استفاده کنید. برای اطلاعات بیشتر به مستندات اسکرول مراجعه کنید.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-08-28 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-08-28 بهوقت ساعت هماهنگ جهانی."],[],[],null,["The [`Card`](/reference/kotlin/androidx/compose/material3/package-summary#Card(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Shape,androidx.compose.material3.CardColors,androidx.compose.material3.CardElevation,androidx.compose.foundation.BorderStroke,kotlin.Function1)) composable acts as a Material Design container for your UI.\nCards typically present a single coherent piece of content. The following are\nsome examples of where you might use a card:\n\n- A product in a shopping app.\n- A news story in a news app.\n- A message in a communications app.\n\nIt is the focus on portraying a single piece of content that distinguishes\n`Card` from other containers. For example, `Scaffold` provides general structure\nto a whole screen. Card is generally a smaller UI element inside a larger\nlayout, whereas a layout component such as `Column` or `Row` provides a simpler\nand more generic API.\n**Figure 1.** An example of a card populated with text and icons.\n\nBasic implementation\n\n`Card` behaves much like other containers in Compose. You declare its content by\ncalling other composables within it. For example, consider how `Card` contains a\ncall to `Text` in the following minimal example: \n\n @Composable\n fun CardMinimalExample() {\n Card() {\n Text(text = \"Hello, world!\")\n }\n }\n\n| **Note:** By default, a `Card` wraps its content in a `Column` composable, placing each item inside the card below one another.\n\nAdvanced implementations\n\nSee the [reference](/reference/kotlin/androidx/compose/material3/package-summary#Card(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Shape,androidx.compose.material3.CardColors,androidx.compose.material3.CardElevation,androidx.compose.foundation.BorderStroke,kotlin.Function1)) for the API definition of `Card`. It defines several\nparameters that allow you customize the appearance and behavior of the\ncomponent.\n\nSome key parameters to note are the following:\n\n- **`elevation`**: Adds a shadow to the component that makes it appear elevated above the background.\n- **`colors`** : Uses the `CardColors` type to set the default color of both the container and any children.\n- **`enabled`** : If you pass `false` for this parameter, the card appears as disabled and does not respond to user input.\n- **`onClick`** : Ordinarily, a `Card` does not accept click events. As such, the primary overload you would like to note is that which defines an `onClick` parameter. You should use this overload if you would like your implementation of `Card` to respond to presses from the user.\n\nThe following example demonstrates how you might use these parameters, as well\nas other common parameters such as `shape` and `modifier`.\n| **Beta:** The `Card` overload that defines the `onClick` parameter is experimental.\n\nFilled card\n\nThe following is an example of how you can implement a filled card.\n\nThe key here is the use of the `colors` property to change the filled\ncolor.\n\n\n```kotlin\n@Composable\nfun FilledCardExample() {\n Card(\n colors = CardDefaults.cardColors(\n containerColor = MaterialTheme.colorScheme.surfaceVariant,\n ),\n modifier = Modifier\n .size(width = 240.dp, height = 100.dp)\n ) {\n Text(\n text = \"Filled\",\n modifier = Modifier\n .padding(16.dp),\n textAlign = TextAlign.Center,\n )\n }\n}https://github.com/android/snippets/blob/5673ffc60b614daf028ee936227128eb8c4f9781/compose/snippets/src/main/java/com/example/compose/snippets/components/Card.kt#L106-L122\n```\n\n\u003cbr /\u003e\n\nThis implementation appears as follows:\n**Figure 2.** Example of a filled card.\n\nElevated Card\n\nThe following snippet demonstrates how to implement an elevated card. Use the\ndedicated [`ElevatedCard`](/reference/kotlin/androidx/compose/material3/package-summary#ElevatedCard(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Shape,androidx.compose.material3.CardColors,androidx.compose.material3.CardElevation,kotlin.Function1)) composable.\n\nYou can use the `elevation` property to control the appearance of elevation and\nthe resulting shadow.\n\n\n```kotlin\n@Composable\nfun ElevatedCardExample() {\n ElevatedCard(\n elevation = CardDefaults.cardElevation(\n defaultElevation = 6.dp\n ),\n modifier = Modifier\n .size(width = 240.dp, height = 100.dp)\n ) {\n Text(\n text = \"Elevated\",\n modifier = Modifier\n .padding(16.dp),\n textAlign = TextAlign.Center,\n )\n }\n}https://github.com/android/snippets/blob/5673ffc60b614daf028ee936227128eb8c4f9781/compose/snippets/src/main/java/com/example/compose/snippets/components/Card.kt#L85-L101\n```\n\n\u003cbr /\u003e\n\nThis implementation appears as follows:\n**Figure 3.** Example of an elevated card.\n\nOutlined Card\n\nThe following is an example of an outlined card. Use the dedicated\n[`OutlinedCard`](/reference/kotlin/androidx/compose/material3/package-summary#OutlinedCard(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Shape,androidx.compose.material3.CardColors,androidx.compose.material3.CardElevation,androidx.compose.foundation.BorderStroke,kotlin.Function1)) composable.\n\n\n```kotlin\n@Composable\nfun OutlinedCardExample() {\n OutlinedCard(\n colors = CardDefaults.cardColors(\n containerColor = MaterialTheme.colorScheme.surface,\n ),\n border = BorderStroke(1.dp, Color.Black),\n modifier = Modifier\n .size(width = 240.dp, height = 100.dp)\n ) {\n Text(\n text = \"Outlined\",\n modifier = Modifier\n .padding(16.dp),\n textAlign = TextAlign.Center,\n )\n }\n}https://github.com/android/snippets/blob/5673ffc60b614daf028ee936227128eb8c4f9781/compose/snippets/src/main/java/com/example/compose/snippets/components/Card.kt#L127-L144\n```\n\n\u003cbr /\u003e\n\nThis implementation appears as follows:\n**Figure 4.** Example of an outlined card.\n\nLimitations\n\nCards don't come with inherent scroll or dismiss actions, but can integrate into\ncomposables offering these features. For example, to implement swipe to dismiss\non a card, integrate it with the [`SwipeToDismiss`](/reference/kotlin/androidx/compose/material3/package-summary#SwipeToDismiss(androidx.compose.material3.DismissState,kotlin.Function1,kotlin.Function1,androidx.compose.ui.Modifier,kotlin.collections.Set)) composable. To integrate\nwith scroll, use scroll modifiers such as [`verticalScroll`](/reference/kotlin/androidx/compose/foundation/package-summary#(androidx.compose.ui.Modifier).verticalScroll(androidx.compose.foundation.ScrollState,kotlin.Boolean,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean)). See the [Scroll\ndocumentation](/develop/ui/compose/touch-input/pointer-input/scroll) for more information.\n\nAdditional resources\n\n- [Material UI docs](https://m3.material.io/components/cards/overview)"]]