सूचियों और पेजिंग की मदद से, डेटा को धीरे-धीरे लोड करना

धीरे-धीरे लोड होने की सुविधा और पेजिंग की मदद से, अपने ऐप्लिकेशन में आइटम की बड़ी सूचियां दिखाई जा सकती हैं. इनमें अनलिमिटेड सूची भी शामिल है. इसके लिए, डेटा को धीरे-धीरे लोड करके दिखाया जाता है. इस टेक्नोलॉजी की मदद से, शुरुआती लोड होने में लगने वाले समय को कम किया जा सकता है. साथ ही, मेमोरी के इस्तेमाल को ऑप्टिमाइज़ करके परफ़ॉर्मेंस को बेहतर बनाया जा सकता है.

वर्शन के साथ काम करना

इसे लागू करने के लिए, ज़रूरी है कि आपके प्रोजेक्ट का 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 डेवलपमेंट के बड़े लक्ष्यों के बारे में बताया गया है:

सूचियों और ग्रिड की मदद से, आपके ऐप्लिकेशन में संग्रहों को ऐसे दिखाया जा सकता है कि वे उपयोगकर्ताओं को देखने में अच्छे लगें और उन्हें आसानी से समझ आएं.
जानें कि कॉम्पोज़ेबल फ़ंक्शन की मदद से, Material Design डिज़ाइन सिस्टम के आधार पर, आसानी से खूबसूरत यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट कैसे बनाए जा सकते हैं.
इस वीडियो सीरीज़ में, Compose के अलग-अलग एपीआई के बारे में बताया गया है. इससे आपको यह जानने में मदद मिलेगी कि कौनसे एपीआई उपलब्ध हैं और उन्हें कैसे इस्तेमाल किया जा सकता है.

क्या आपका कोई सवाल है या सुझाव/राय देनी है

अक्सर पूछे जाने वाले सवालों के पेज पर जाएं और क्विक गाइड के बारे में जानें. इसके अलावा, हमसे संपर्क करके अपने सुझाव/राय दें.