RecyclerView হল একটি View কম্পোনেন্ট যা দক্ষতার সাথে বৃহৎ ডেটা সেট প্রদর্শন করা সহজ করে তোলে। ডেটা সেটের প্রতিটি আইটেমের জন্য ভিউ তৈরি করার পরিবর্তে, RecyclerView আপনার অ্যাপের কর্মক্ষমতা উন্নত করে ভিউয়ের একটি ছোট পুল রেখে এবং সেই আইটেমগুলি স্ক্রোল করার সময় সেগুলি পুনর্ব্যবহার করে।
 কম্পোজে, আপনি একই কাজ সম্পন্ন করার জন্য Lazy lists ব্যবহার করতে পারেন। এই পৃষ্ঠাটি বর্ণনা করে যে কীভাবে আপনি আপনার RecyclerView বাস্তবায়নকে Compose-এ Lazy lists ব্যবহার করতে স্থানান্তর করতে পারেন।
মাইগ্রেশনের ধাপগুলি
 আপনার RecyclerView বাস্তবায়নকে Compose-এ স্থানান্তর করতে, এই পদক্ষেপগুলি অনুসরণ করুন:
- আপনার UI অনুক্রম থেকে - RecyclerViewমন্তব্য করুন অথবা সরিয়ে দিন এবং অনুক্রমের মধ্যে যদি এখনও কোনটি উপস্থিত না থাকে তবে এটি প্রতিস্থাপন করার জন্য একটি- ComposeViewযোগ করুন। এটি Lazy তালিকার জন্য ধারক যা আপনি যোগ করবেন:- <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent"> <!-- <androidx.recyclerview.widget.RecyclerView--> <!-- android:id="@+id/recycler_view"--> <!-- android:layout_width="match_parent"--> <!-- android:layout_height="match_parent />"--> <androidx.compose.ui.platform.ComposeView android:id="@+id/compose_view" android:layout_width="match_parent" android:layout_height="match_parent" /> </FrameLayout>
- আপনার - RecyclerViewএর লেআউট ম্যানেজারের উপর ভিত্তি করে আপনার কোন ধরণের Lazy list composable প্রয়োজন তা নির্ধারণ করুন (নীচের টেবিলটি দেখুন)। আপনি যে composable নির্বাচন করবেন তা হবে পূর্ববর্তী ধাপে আপনার যোগ করা- ComposeViewএর শীর্ষ-স্তরের composable।- LayoutManager- কম্পোজেবল - LinearLayoutManager- LazyColumnবা- LazyRow- GridLayoutManager- LazyVerticalGridঅথবা- LazyHorizontalGrid- StaggeredGridLayoutManager- LazyVerticalStaggeredGridবা- LazyHorizontalStaggeredGrid- // recyclerView.layoutManager = LinearLayoutManager(context) composeView.setContent { LazyColumn(Modifier.fillMaxSize()) { // We use a LazyColumn since the layout manager of the RecyclerView is a vertical LinearLayoutManager } } 
- আপনার - RecyclerView.Adapterবাস্তবায়নে প্রতিটি ভিউ টাইপের জন্য একটি সংশ্লিষ্ট কম্পোজেবল তৈরি করুন। প্রতিটি ভিউ টাইপ সাধারণত একটি- ViewHolderসাবক্লাসের সাথে ম্যাপ করে, যদিও এটি সর্বদা ক্ষেত্রে নাও হতে পারে। এই কম্পোজেবলগুলি আপনার তালিকার বিভিন্ন ধরণের উপাদানের জন্য UI প্রতিনিধিত্ব হিসাবে ব্যবহৃত হবে:- @Composable fun ListItem(data: MyData, modifier: Modifier = Modifier) { Row(modifier.fillMaxWidth()) { Text(text = data.name) // … other composables required for displaying `data` } } - আপনার - RecyclerView.Adapterএর- onCreateViewHolder()এবং- onBindViewHolder()পদ্ধতির লজিক এই কম্পোজেবল এবং আপনি যে অবস্থা প্রদান করেন তা দ্বারা প্রতিস্থাপিত হবে। Compose-এ, একটি আইটেমের জন্য কম্পোজেবল তৈরি করা এবং এতে ডেটা বাঁধার মধ্যে কোনও বিচ্ছেদ নেই - এই ধারণাগুলি একত্রিত হয়।
- Lazy তালিকার (trailing lambda প্যারামিটার) - contentস্লটের মধ্যে, আপনার তালিকার ডেটা পুনরাবৃত্তি করতে- items()ফাংশন (অথবা সমতুল্য ওভারলোড) ব্যবহার করুন।- itemContentlambda-তে, আপনার ডেটার জন্য উপযুক্ত কম্পোজেবল আইটেমটি ব্যবহার করুন:- val data = listOf<MyData>(/* ... */) composeView.setContent { LazyColumn(Modifier.fillMaxSize()) { items(data) { ListItem(it) } } } 
সাধারণ ব্যবহারের ক্ষেত্রে
আইটেম সজ্জা
 RecyclerView একটি ItemDecoration ধারণা আছে, যা ব্যবহার করে আপনি তালিকার আইটেমগুলির জন্য একটি বিশেষ অঙ্কন যোগ করতে পারেন। উদাহরণস্বরূপ, আপনি আইটেমগুলির মধ্যে বিভাজক যোগ করার জন্য একটি ItemDecoration যোগ করতে পারেন: 
val itemDecoration = DividerItemDecoration(recyclerView.context, LinearLayoutManager.VERTICAL) recyclerView.addItemDecoration(itemDecoration)
 কম্পোজে আইটেম ডেকোরেশনের সমতুল্য ধারণা নেই। পরিবর্তে, আপনি তালিকার যেকোনো UI ডেকোরেশন সরাসরি কম্পোজিশনে যোগ করতে পারেন। উদাহরণস্বরূপ, তালিকায় ডিভাইডার যোগ করতে, আপনি প্রতিটি আইটেমের পরে কম্পোজেবল Divider ব্যবহার করতে পারেন: 
LazyColumn(Modifier.fillMaxSize()) { itemsIndexed(data) { index, d -> ListItem(d) if (index != data.size - 1) { HorizontalDivider() } } }
আইটেম অ্যানিমেশন
 অ্যাডাপ্টারে পরিবর্তনের সাথে সাথে আইটেমগুলির চেহারা অ্যানিমেট করার জন্য একটি RecyclerView এ একটি ItemAnimator সেট করা যেতে পারে। ডিফল্টরূপে, RecyclerView DefaultItemAnimator ব্যবহার করে যা ইভেন্টগুলি সরানো, যোগ করা এবং সরানোর ক্ষেত্রে মৌলিক অ্যানিমেশন সরবরাহ করে।
 animateItemPlacement মডিফায়ারের মাধ্যমে অলস তালিকার ধারণাটি একই রকম। আরও জানতে আইটেম অ্যানিমেশনগুলি দেখুন।
অতিরিক্ত সম্পদ
 একটি RecyclerView কে কম্পোজে স্থানান্তরিত করার বিষয়ে আরও তথ্যের জন্য, নিম্নলিখিত সংস্থানগুলি দেখুন:
- তালিকা এবং গ্রিড : কম্পোজে তালিকা এবং গ্রিড কীভাবে বাস্তবায়ন করতে হয় তার ডকুমেন্টেশন।
-  জেটপ্যাক কম্পোজ ইন্টারঅপ: রিসাইক্লারভিউতে কম্পোজ ব্যবহার : RecyclerViewদক্ষতার সাথে কম্পোজ ব্যবহারের জন্য ব্লগ পোস্ট।
আপনার জন্য প্রস্তাবিত
- দ্রষ্টব্য: জাভাস্ক্রিপ্ট বন্ধ থাকলে লিঙ্ক টেক্সট প্রদর্শিত হয়।
- তালিকা এবং গ্রিড
-  CoordinatorLayoutরচনায় স্থানান্তর করুন
- অন্যান্য বিবেচ্য বিষয়
