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

ধীরে ধীরে লোড করা এবং পেজিংয়ের মাধ্যমে, আপনি নিজের অ্যাপে আইটেমের বড় তালিকা—যার মধ্যে অসীম তালিকাও অন্তর্ভুক্ত—ধীরে ধীরে ডেটা লোড ও দেখানোর মাধ্যমে সাপোর্ট করতে পারবেন। এই টেকনিকের সাহায্যে আপনি প্রাথমিক লোড টাইম কমাতে এবং মেমরির ব্যবহার অপ্টিমাইজ করতে পারবেন, যার ফলে পারফর্ম্যান্স উন্নত হবে।

ফলাফল

ব্যবহারকারী স্ক্রল করার সময় ডেটা ফেচ করার বড় তালিকার ফলে কী ধরনের আচরণ দেখা যায় তা নিচের ভিডিওতে দেখানো হয়েছে।

ভার্সন কম্প্যাটিবিলিটি

এই প্রয়োগের জন্য আপনার প্রোজেক্টের minSDK-কে API লেভেল ২১ বা তার বেশি হিসেবে সেট করতে হবে।

ডিপেন্ডেন্সি

পৃষ্ঠায় কন্টেন্ট দেখান

পেজিং লাইব্রেরির সাহায্যে, আপনি স্থানীয় স্টোরেজ বা নেটওয়ার্ক থেকে পাওয়া বড় ডেটাসেট থেকে ডেটার পৃষ্ঠা লোড ও ডিসপ্লে করতে পারবেন। নিম্নলিখিত কোড ব্যবহার করে পৃষ্ঠা অনুযায়ী তালিকা দেখান, যেখানে প্রোগ্রেস বার ব্যবহারকারীকে দেখায় যে আরও ডেটা ফেচ করা হচ্ছে:

@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 ডেভেলপমেন্টের লক্ষ্য:

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

কোনও প্রশ্ন বা মতামত জানাতে চান

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