बैज

किसी दूसरे कॉम्पोज़ेबल पर स्टेटस या संख्या वाली वैल्यू दिखाने के लिए, बैज का इस्तेमाल करें. इससे एक छोटा विज़ुअल एलिमेंट दिखता है. यहां कुछ ऐसी सामान्य स्थितियां दी गई हैं जहां बैज का इस्तेमाल किया जा सकता है:

  • सूचनाएं: ऐप्लिकेशन के आइकॉन या सूचना देने वाली घंटी पर, न पढ़ी गई सूचनाओं की संख्या दिखाएं.
  • मैसेज: चैट ऐप्लिकेशन में नए या नहीं पढ़े गए मैसेज के बारे में बताते हैं.
  • स्टेटस अपडेट: किसी टास्क का स्टेटस दिखाएं. जैसे, "पूरा हो गया," "जारी है" या "पूरा नहीं हो सका."
  • कार्ट में मौजूद आइटम की संख्या: उपयोगकर्ता के शॉपिंग कार्ट में मौजूद आइटम की संख्या दिखाएं.
  • नया कॉन्टेंट: उपयोगकर्ता के लिए उपलब्ध नए कॉन्टेंट या सुविधाओं को हाइलाइट करें.
बैज कॉम्पोनेंट के अलग-अलग उदाहरण.
पहली इमेज. बैज के उदाहरण

एपीआई सरफ़ेस

अपने ऐप्लिकेशन में बैज लागू करने के लिए, 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 कंपोज़ेबल, बैज के अंदर दिखता है. इस मामले में, यह कार्ट में मौजूद आइटम की संख्या दिखाता है.

लागू होने पर यह इस तरह दिखता है:

बैज का ऐसा लागू किया गया तरीका जिसमें शॉपिंग कार्ट में मौजूद आइटम की संख्या शामिल होती है.
तीसरी इमेज. एक बैज, जो शॉपिंग कार्ट में मौजूद आइटम की संख्या दिखाता है.

अन्य संसाधन