از یک نشان برای نمایش یک عنصر بصری کوچک برای نشان دادن وضعیت یا یک مقدار عددی در قابل ترکیب دیگر استفاده کنید. در اینجا چند سناریو رایج وجود دارد که در آن ممکن است از نشان استفاده کنید:
- اعلانها : تعداد اعلانهای خوانده نشده را روی نماد برنامه یا زنگ اعلان نمایش دهید.
- پیام ها : پیام های جدید یا خوانده نشده را در یک برنامه چت نشان می دهد.
- بهروزرسانیهای وضعیت : وضعیت یک کار مانند "تکمیل"، "در حال انجام" یا "شکست خورده" را نشان میدهد.
- مقدار سبد خرید : نمایش تعداد اقلام در سبد خرید کاربر.
- محتوای جدید : محتوا یا ویژگی های جدید در دسترس کاربر را برجسته کنید.
سطح API
از BadgedBox
composable برای پیاده سازی نشان ها در برنامه خود استفاده کنید. در نهایت یک ظرف است. شما ظاهر آن را با این دو پارامتر اصلی کنترل می کنید:
-
content
: محتوای قابل ترکیبی کهBadgedBox
حاوی آن است. به طور معمولIcon
. -
badge
: قابل ترکیب که به عنوان نشان روی محتوا ظاهر می شود. معمولاًBadge
اختصاصی قابل ساخت.
مثال اساسی
این قطعه کد یک پیاده سازی اساسی از BadgedBox
را نشان می دهد:
@Composable fun BadgeExample() { BadgedBox( badge = { Badge() } ) { Icon( imageVector = Icons.Filled.Mail, contentDescription = "Email" ) } }
این مثال نشانی را نشان میدهد که Icon
قابل ترکیب ارائه شده همپوشانی دارد. در کد به موارد زیر توجه کنید:
-
BadgedBox
به عنوان ظرف کلی عمل می کند. - آرگومان برای پارامتر
badge
BadgedBox
Badge
است. از آنجایی کهBadge
هیچ آرگومان خاص خود را ندارد، برنامه نشان پیش فرض را نشان می دهد که یک دایره قرمز کوچک است. -
Icon
به عنوان آرگومان برای پارامترcontent
BadgedBox
عمل می کند. این نمادی است که نشان روی آن ظاهر می شود. در این مورد، نماد ایمیل است.
اینگونه به نظر می رسد:
مثال مفصل
قطعه زیر نشان می دهد که چگونه می توانید مقادیری را در نشان نشان دهید که به اقدامات کاربر پاسخ می دهند.
@Composable fun BadgeInteractiveExample() { var itemCount by remember { mutableStateOf(0) } Column( verticalArrangement = Arrangement.spacedBy(16.dp) ) { BadgedBox( badge = { if (itemCount > 0) { Badge( containerColor = Color.Red, contentColor = Color.White ) { Text("$itemCount") } } } ) { Icon( imageVector = Icons.Filled.ShoppingCart, contentDescription = "Shopping cart", ) } Button(onClick = { itemCount++ }) { Text("Add item") } } }
این مثال یک نماد سبد خرید با نشانی را پیاده سازی می کند که تعداد اقلام موجود در سبد خرید کاربر را نمایش می دهد.
-
BadgedBox
فقط زمانی نمایش داده می شود که تعداد آیتم ها بیش از 0 باشد. - آرگومان های
containerColor
وcontentColor
ظاهر نشان را کنترل می کنند. -
Text
قابل نوشتن برای اسلات محتوایBadge
در داخل نشان ظاهر می شود. در این حالت تعداد اقلام موجود در سبد خرید را نمایش می دهد.
این پیاده سازی به صورت زیر ظاهر می شود: