অলসভাবে তালিকা এবং পেজিং সহ ডেটা লোড করুন

অলস লোডিং এবং পেজিং সহ, আপনি ক্রমবর্ধমানভাবে ডেটা লোড এবং প্রদর্শনের মাধ্যমে আপনার অ্যাপে আইটেমগুলির বড় তালিকাকে সমর্থন করতে পারেন—একটি অসীম তালিকা সহ। এই কৌশলটি আপনাকে প্রারম্ভিক লোডের সময় কমাতে এবং মেমরি ব্যবহার অপ্টিমাইজ করতে সক্ষম করে, কর্মক্ষমতা বৃদ্ধি করে।

সংস্করণ সামঞ্জস্য

এই বাস্তবায়নের জন্য আপনার প্রজেক্ট 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 মধ্যে পৃষ্ঠাযুক্ত ডেটা লোড এবং উপস্থাপনা পরিচালনা করে। এটি LazyPagingItems LazyColumn কম্পোজযোগ্য items পাস করে।
  • MessageRow(message: Text) পৃথক বার্তা আইটেম রেন্ডার করার জন্য দায়ী, সম্ভবত একটি কার্ডের মধ্যে প্রেরক এবং বার্তাটির পাঠ্য প্রদর্শন করে।
  • MessagePlaceholder() একটি ভিজ্যুয়াল প্লেসহোল্ডার (একটি লোডিং স্পিনার) প্রদান করে যখন প্রকৃত বার্তা ডেটা আনা হচ্ছে, ব্যবহারকারীর অভিজ্ঞতা বৃদ্ধি করে৷

ফলাফল

নিম্নলিখিত ভিডিওটি ব্যবহারকারীর স্ক্রোল করার সাথে সাথে ডেটা আনার একটি বৃহৎ তালিকার ফলস্বরূপ আচরণ দেখায়।

এই নির্দেশিকা ধারণকারী সংগ্রহ

এই নির্দেশিকাটি এই কিউরেট করা কুইক গাইড সংগ্রহের অংশ যা বৃহত্তর অ্যান্ড্রয়েড উন্নয়ন লক্ষ্যগুলি কভার করে:

তালিকা এবং গ্রিডগুলি আপনার অ্যাপটিকে একটি দৃশ্যত আনন্দদায়ক আকারে সংগ্রহগুলি প্রদর্শন করার অনুমতি দেয় যা ব্যবহারকারীদের জন্য ব্যবহার করা সহজ৷
মেটেরিয়াল ডিজাইন ডিজাইন সিস্টেমের উপর ভিত্তি করে কীভাবে কম্পোজেবল ফাংশনগুলি আপনাকে সহজেই সুন্দর UI উপাদান তৈরি করতে সক্ষম করে তা শিখুন।
এই সিরিজের ভিডিওগুলি বিভিন্ন কম্পোজ API-এর সাথে পরিচয় করিয়ে দেয়, যা আপনাকে দ্রুত দেখায় এবং কীভাবে সেগুলি ব্যবহার করতে হয়৷

প্রশ্ন বা প্রতিক্রিয়া আছে

আমাদের প্রায়শই জিজ্ঞাসিত প্রশ্ন পৃষ্ঠায় যান এবং দ্রুত গাইড সম্পর্কে জানুন বা যোগাযোগ করুন এবং আপনার চিন্তাভাবনা আমাদের জানান।