Card
कॉम्पोज़ेबल, आपके यूज़र इंटरफ़ेस (यूआई) के लिए मटीरियल डिज़ाइन कंटेनर के तौर पर काम करता है.
आम तौर पर, कार्ड में एक ही तरह का कॉन्टेंट होता है. यहां कुछ उदाहरण दिए गए हैं, जिनमें कार्ड का इस्तेमाल किया जा सकता है:
- शॉपिंग ऐप्लिकेशन में मौजूद प्रॉडक्ट.
- समाचार ऐप्लिकेशन में मौजूद खबर.
- कम्यूनिकेशन ऐप्लिकेशन में कोई मैसेज.
इसमें किसी एक कॉन्टेंट को दिखाने पर फ़ोकस किया जाता है, ताकि Card
को अन्य कंटेनर से अलग किया जा सके. उदाहरण के लिए, Scaffold
पूरी स्क्रीन के लिए सामान्य स्ट्रक्चर देता है. कार्ड आम तौर पर बड़े लेआउट में मौजूद एक छोटा यूज़र इंटरफ़ेस (यूआई) एलिमेंट होता है. वहीं, Column
या Row
जैसे लेआउट कॉम्पोनेंट, आसान और ज़्यादा सामान्य एपीआई उपलब्ध कराते हैं.
बुनियादी तौर पर लागू करना
Card
, Compose में मौजूद अन्य कंटेनर की तरह ही काम करता है. इसके कॉन्टेंट की जानकारी देने के लिए, इसमें मौजूद अन्य कॉम्पोज़ेबल को कॉल किया जाता है. उदाहरण के लिए, इस छोटे उदाहरण में देखें कि Card
में Text
को कैसे कॉल किया गया है:
@Composable
fun CardMinimalExample() {
Card() {
Text(text = "Hello, world!")
}
}
बेहतर तरीके से लागू करना
Card
के एपीआई की परिभाषा के लिए रेफ़रंस देखें. इसमें कई पैरामीटर तय किए जाते हैं. इनकी मदद से, कॉम्पोनेंट के दिखने के तरीके और उसके व्यवहार को पसंद के मुताबिक बनाया जा सकता है.
ध्यान देने के लिए कुछ मुख्य पैरामीटर यहां दिए गए हैं:
elevation
: इस विकल्प की मदद से, कॉम्पोनेंट में एक शैडो जोड़ी जाती है, जिससे वह बैकग्राउंड से ऊपर दिखता है.colors
: कंटेनर और उसके सभी चाइल्ड एलिमेंट के लिए डिफ़ॉल्ट रंग सेट करने के लिए,CardColors
टाइप का इस्तेमाल करता है.enabled
: अगर इस पैरामीटर के लिएfalse
पास किया जाता है, तो कार्ड 'बंद है' के तौर पर दिखता है और उपयोगकर्ता के इनपुट का जवाब नहीं देता.onClick
: आम तौर पर,Card
क्लिक इवेंट स्वीकार नहीं करता. इसलिए, आपको जिस प्राइमरी ओवरलोड पर ध्यान देना है वह वह है जोonClick
पैरामीटर तय करता है. अगर आपकोCard
को लागू करने के बाद, उपयोगकर्ता के प्रेस करने पर जवाब चाहिए, तो आपको इस ओवरलोड का इस्तेमाल करना चाहिए.
नीचे दिए गए उदाहरण में, इन पैरामीटर के साथ-साथ shape
और modifier
जैसे अन्य सामान्य पैरामीटर का इस्तेमाल करने का तरीका बताया गया है.
भरा हुआ कार्ड
यहां एक उदाहरण दिया गया है, जिसमें बताया गया है कि भरा हुआ कार्ड कैसे लागू किया जा सकता है.
यहां भरी हुई वैल्यू का रंग बदलने के लिए, colors
प्रॉपर्टी का इस्तेमाल किया गया है.
@Composable fun FilledCardExample() { Card( colors = CardDefaults.cardColors( containerColor = MaterialTheme.colorScheme.surfaceVariant, ), modifier = Modifier .size(width = 240.dp, height = 100.dp) ) { Text( text = "Filled", modifier = Modifier .padding(16.dp), textAlign = TextAlign.Center, ) } }
लागू होने पर यह ऐसा दिखता है:
ऊंचा कार्ड
नीचे दिए गए स्निपेट में, एलिवेटेड कार्ड को लागू करने का तरीका बताया गया है. इसके लिए, ElevatedCard
के लिए बने खास कॉम्पोनेंट का इस्तेमाल करें.
elevation
प्रॉपर्टी का इस्तेमाल करके, एलिवेशन और उससे बनने वाली परछाई को कंट्रोल किया जा सकता है.
@Composable fun ElevatedCardExample() { ElevatedCard( elevation = CardDefaults.cardElevation( defaultElevation = 6.dp ), modifier = Modifier .size(width = 240.dp, height = 100.dp) ) { Text( text = "Elevated", modifier = Modifier .padding(16.dp), textAlign = TextAlign.Center, ) } }
लागू होने पर यह ऐसा दिखता है:
आउटलाइन किया गया कार्ड
यहां आउटलाइन वाले कार्ड का उदाहरण दिया गया है. इसके लिए, OutlinedCard
कॉम्पोनेंट का इस्तेमाल करें.
@Composable fun OutlinedCardExample() { OutlinedCard( colors = CardDefaults.cardColors( containerColor = MaterialTheme.colorScheme.surface, ), border = BorderStroke(1.dp, Color.Black), modifier = Modifier .size(width = 240.dp, height = 100.dp) ) { Text( text = "Outlined", modifier = Modifier .padding(16.dp), textAlign = TextAlign.Center, ) } }
लागू होने पर यह ऐसा दिखता है:
सीमाएं
कार्ड में स्क्रोल करने या खारिज करने की सुविधाएं पहले से मौजूद नहीं होती हैं. हालांकि, इन्हें उन कॉम्पोनेंसेबल में इंटिग्रेट किया जा सकता है जिनमें ये सुविधाएं मौजूद होती हैं. उदाहरण के लिए, किसी कार्ड को स्वाइप करके हटाने की सुविधा लागू करने के लिए, उसे SwipeToDismiss
कॉम्पोज़ेबल के साथ इंटिग्रेट करें. स्क्रोल के साथ इंटिग्रेट करने के लिए, verticalScroll
जैसे स्क्रोल मॉडिफ़ायर का इस्तेमाल करें. ज़्यादा जानकारी के लिए, स्क्रोल करने के बारे में दस्तावेज़ देखें.