किसी दूसरे कॉम्पोज़ेबल पर स्टेटस या संख्या वाली वैल्यू दिखाने के लिए, बैज का इस्तेमाल करें. इससे एक छोटा विज़ुअल एलिमेंट दिखता है. यहां कुछ ऐसी सामान्य स्थितियां दी गई हैं जहां बैज का इस्तेमाल किया जा सकता है:
- सूचनाएं: ऐप्लिकेशन के आइकॉन या सूचना देने वाली घंटी पर, न पढ़ी गई सूचनाओं की संख्या दिखाएं.
- मैसेज: चैट ऐप्लिकेशन में नए या नहीं पढ़े गए मैसेज के बारे में बताते हैं.
- स्टेटस अपडेट: किसी टास्क का स्टेटस दिखाएं. जैसे, "पूरा हो गया," "जारी है" या "पूरा नहीं हो सका."
- कार्ट में मौजूद आइटम की संख्या: उपयोगकर्ता के शॉपिंग कार्ट में मौजूद आइटम की संख्या दिखाएं.
- नया कॉन्टेंट: उपयोगकर्ता के लिए उपलब्ध नए कॉन्टेंट या सुविधाओं को हाइलाइट करें.
एपीआई सरफ़ेस
अपने ऐप्लिकेशन में बैज लागू करने के लिए, BadgedBox कंपोज़ेबल का इस्तेमाल करें. यह एक कंटेनर है. इन दो मुख्य पैरामीटर की मदद से, यह कंट्रोल किया जा सकता है कि यह कैसा दिखे:
content:BadgedBoxमें मौजूद कंपोज़ेबल कॉन्टेंट. आम तौर परIcon.badge: कॉन्टेंट पर बैज के तौर पर दिखने वाला कंपोज़ेबल. आम तौर पर,Badgeकंपोज़ेबल का इस्तेमाल किया जाता है.
बुनियादी उदाहरण
इस कोड स्निपेट में, BadgedBox को लागू करने का बुनियादी तरीका दिखाया गया है:
@Composable fun BadgeExample() { BadgedBox( badge = { Badge() } ) { Icon( imageVector = Icons.Filled.Mail, contentDescription = "Email" ) } }
इस उदाहरण में, एक बैज दिखाया गया है जो दिए गए Icon कंपोज़ेबल को ओवरलैप करता है. कोड में इन बातों का ध्यान रखें:
BadgedBox, पूरे कंटेनर के तौर पर काम करता है.BadgedBoxकेbadgeपैरामीटर का आर्ग्युमेंटBadgeहै.Badgeमें कोई आर्ग्युमेंट नहीं होता है. इसलिए, ऐप्लिकेशन डिफ़ॉल्ट बैज दिखाता है. यह बैज, लाल रंग का एक छोटा सर्कल होता है.Icon,BadgedBoxकेcontentपैरामीटर के लिए आर्ग्युमेंट के तौर पर काम करता है. यह वह आइकॉन है जिस पर बैज दिखता है. इस मामले में, यह मेल आइकॉन है.
यह इस तरह दिखता है:
ज़्यादा जानकारी वाला उदाहरण
यहां दिए गए स्निपेट से पता चलता है कि बैज में ऐसी वैल्यू कैसे दिखाई जा सकती हैं जो उपयोगकर्ता की कार्रवाइयों के हिसाब से बदलती हैं.
@Composable fun BadgeInteractiveExample() { var itemCount by remember { mutableIntStateOf(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के आर्ग्युमेंट, बैज के दिखने के तरीके को कंट्रोल करते हैं.Badgeके कॉन्टेंट स्लॉट के लिएTextकंपोज़ेबल, बैज के अंदर दिखता है. इस मामले में, यह कार्ट में मौजूद आइटम की संख्या दिखाता है.
लागू होने पर यह इस तरह दिखता है: