धीरे-धीरे लोड होने की सुविधा और पेजिंग की मदद से, अपने ऐप्लिकेशन में आइटम की बड़ी सूचियां दिखाई जा सकती हैं. इनमें अनलिमिटेड सूची भी शामिल है. इसके लिए, डेटा को धीरे-धीरे लोड करके दिखाया जाता है. इस टेक्नोलॉजी की मदद से, शुरुआती लोड होने में लगने वाले समय को कम किया जा सकता है. साथ ही, मेमोरी के इस्तेमाल को ऑप्टिमाइज़ करके परफ़ॉर्मेंस को बेहतर बनाया जा सकता है.
वर्शन के साथ काम करना
इसे लागू करने के लिए, ज़रूरी है कि आपके प्रोजेक्ट का minSDK एपीआई लेवल 21 या उससे ज़्यादा पर सेट हो.
डिपेंडेंसी
पेज वाला कॉन्टेंट दिखाना
पेजिंग लाइब्रेरी की मदद से, किसी बड़े डेटासेट के पेजों को लोड और दिखाया जा सकता है. यह डेटासेट, लोकल स्टोरेज या नेटवर्क से हासिल किया जाता है. पेज पर मौजूद सूची दिखाने के लिए, नीचे दिए गए कोड का इस्तेमाल करें. इस सूची में प्रोग्रेस बार दिखता है, ताकि उपयोगकर्ता को पता चल सके कि ज़्यादा डेटा फ़ेच किया जा रहा है:
@Composable fun MessageList( modifier: Modifier, pager: Pager<Int, Message> ) { val lazyPagingItems = pager.flow.collectAsLazyPagingItems() LazyColumn { items( lazyPagingItems.itemCount, key = lazyPagingItems.itemKey { it.id } ) { index -> val message = lazyPagingItems[index] if (message != null) { MessageRow(message) } else { MessagePlaceholder() } } } @Composable fun MessagePlaceholder(modifier: Modifier) { Box( Modifier .fillMaxWidth() .height(48.dp) ) { CircularProgressIndicator() } } @Composable fun MessageRow( modifier: Modifier, message: Message ) { Card(modifier = Modifier.padding(8.dp)) { Column( modifier = Modifier.padding(8.dp), verticalArrangement = Arrangement.Center ) { Text(message.sender) Text(message.text) } } } }
कोड के बारे में अहम जानकारी
LazyColumn
: इस कॉम्पोज़ेबल का इस्तेमाल, आइटम (मैसेज) की बड़ी सूची को बेहतर तरीके से दिखाने के लिए किया जाता है. यह सिर्फ़ उन आइटम को रेंडर करता है जो स्क्रीन पर दिखते हैं. इससे संसाधन और मेमोरी बचती है.lazyPagingItems
ऑब्जेक्ट,LazyColumn
में पेज किए गए डेटा को लोड करने और उसे बेहतर तरीके से दिखाने का काम करता है. यहLazyColumn
कॉम्पोज़ेबल में,LazyPagingItems
कोitems
पर पास करता है.MessageRow(message: Text)
, मैसेज के अलग-अलग आइटम को रेंडर करने के लिए ज़िम्मेदार है. ऐसा हो सकता है कि यह कार्ड में मैसेज भेजने वाले व्यक्ति और मैसेज का टेक्स्ट दिखाए.MessagePlaceholder()
, मैसेज का असल डेटा फ़ेच किए जाने के दौरान, विज़ुअल प्लेसहोल्डर (लोडिंग स्पिनर) दिखाता है. इससे उपयोगकर्ता अनुभव बेहतर होता है.
नतीजे
नीचे दिए गए वीडियो में, उपयोगकर्ता के स्क्रोल करने पर, बड़ी सूची से डेटा फ़ेच करने के नतीजे के व्यवहार को दिखाया गया है.
ऐसे संग्रह जिनमें यह गाइड शामिल है
यह गाइड, चुने गए क्विक गाइड के कलेक्शन का हिस्सा है. इसमें Android डेवलपमेंट के बड़े लक्ष्यों के बारे में बताया गया है:
![](https://developer.android.com/static/images/quick-guides/collection-illustration.png?hl=hi)
सूची या ग्रिड दिखाना
![](https://developer.android.com/static/images/quick-guides/collection-illustration.png?hl=hi)
इंटरैक्टिव कॉम्पोनेंट दिखाना
![](https://developer.android.com/static/images/quick-guides/collection-illustration.png?hl=hi)