در Jetpack Compose Glimmer، کامپوننت Card به عنوان ظرف اصلی برای محتوای مرتبط عمل میکند و یک مرز بصری واضح برای واحدهای قابل هضم اطلاعات ایجاد میکند. کارتها بسیار تطبیقپذیر هستند و از ترکیب محتوای اصلی، عناوین اختیاری، زیرنویسها و نمادهای پیشرو یا انتهایی پشتیبانی میکنند. کارتها به طور پیشفرض حداکثر عرض موجود را پر میکنند، قابل فوکوس هستند و همچنین میتوانید آنها را قابل کلیک کنید. کارتها از چیدمان عمودی پشتیبانی میکنند که در آن تصویر هدر در بالاترین قسمت قرار دارد و پس از آن عنوان، زیرنویس و محتوای بدنه قرار میگیرد.
کارتها بر اساس سیستم سطح Jetpack Compose Glimmer ساخته شدهاند، بنابراین ویژگیهای فیزیکی مانند جلوههای عمق، برش و هایلایتهای حاشیهای ثابت را به ارث میبرند.

آناتومی و اسلاتها
یک کارت Glimmer با قابلیت نوشتن متن در Jetpack از چندین عنصر تخصصی ساخته شده است که به شما امکان میدهد محتوا و طرحبندی آن را سفارشی کنید.
| اسلات | توضیحات |
|---|---|
سربرگ | بخش بالایی کارت، که برای نگهداری یک تصویر طراحی شده است. |
عنوان و زیرعنوان | این فیلدهای متنی برچسبهای اصلی و فرعی کارت را ارائه میدهند. عنوان بالای عنوان فرعی قرار میگیرد. |
نماد پیشرو | یک آیکون اختیاری (معمولاً یک |
آیکون دنبالهدار | یک آیکون اختیاری که در انتهای قسمت محتوای کارت ظاهر میشود. |
اکشن | یک جایگاه برای یک عنصر تعاملی اصلی، مانند یک |
محتوای اصلی | بدنه اصلی کارت برای |
پیشفرضهای کارت
پیشفرضهای زیر برای کارتها اعمال میشود:
- عرض : کارتها حداکثر عرض موجود صفحه نمایش را پر میکنند تا خوانایی روی عینکهای نمایشگر بهینه شود.
- حداقل ارتفاع :
80.dp - فاصله عمودی متن :
3.dp - شکل هدر : از
RoundedCornerShapeبا گوشههای24.dpاستفاده میکند. - مقدار پیشفرض برای فاصلهگذاری محتوا (Content padding ):
GlimmerTheme.componentSpacingValues.mediumاست. این مقدار، بیرونیترین فاصلهگذاری اطراف تصاویر هدر و کانتینر محتوا را تحت تأثیر قرار میدهد. - شکل : مقدار پیشفرض
GlimmerTheme.shapes.mediumاست. رندر متن : از مقادیر پیشفرض
GlimmerTheme.typographyبرای اسلاتهای زیر استفاده میکند:- عنوان:
bodyMedium - زیرنویس:
caption - محتوای اصلی:
bodySmall
- عنوان:
مثال: کارت پایه
کد زیر یک کارت پایه ایجاد میکند:
@Composable fun CardSample() { Card { Text("This is a card") } }
مثال: کارت پیچیده با چندین اسلات
کد زیر نحوه استفاده از چندین اسلات را با هم برای ساخت یک کارت نشان میدهد.
@Composable fun CardWithTitleAndLeadingIconAndHeaderAndAction() { Card( action = { Button(onClick = {}, trailingIcon = { Icon(FavoriteIcon, "Localized description") }) { Text("Send") } }, title = { Text("Title") }, leadingIcon = { Icon(FavoriteIcon, "Localized description") }, header = { Image(MyHeaderImage, "Localized description", contentScale = ContentScale.FillWidth) }, ) { Text("This is a card with a title, leading icon, header image, and action") } }
نکات کلیدی در مورد کد
- نحوه استفاده از عناصر مختلف کارت، مانند
header،title،leadingIconوaction، را برای سفارشیسازی محتوا و ساختار کارت نشان میدهد. - از بارگذاری استاندارد
Cardبه همراه یک عمل استفاده میکند، زیرا فقط کارت (یا عمل داخلی آن) باید قابل فوکوس باشد. اگر نیاز دارید که کل سطح کارت تعاملی باشد، به جای آن از بارگذاریCardبه همراهonClickاستفاده کنید. - این کارت از یک اسلات اکشن استفاده میکند، بنابراین سطح کارت قابل فوکوس نیست و در عوض فوکوس به دکمه اکشن هدایت میشود.