बैज

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

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

एपीआई सरफेस

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

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

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

अन्य संसाधन