1. ধারক দেখুন
লিস্টভিউ-এ, ভিউ হোল্ডারদের সংজ্ঞা দেওয়া হ'ল দর্শনগুলির জন্য রেফারেন্স রাখার জন্য একটি প্রস্তাবিত পদ্ধতি ছিল। তবে এটি কোনও বাধ্যবাধকতা ছিল না। যদিও এটি না করে, তালিকাভিউ বাসি ডেটা দেখায়। ভিউ হোল্ডারগুলি ব্যবহার না করার আরও একটি বড় অসুবিধা প্রতিবার আইডির দ্বারা দেখা সন্ধানের ভারী অপারেশন হতে পারে। যার ফলস্বরূপ পিছিয়ে তালিকার ভিউগুলি।
এই সমস্যাটি রিসাইক্লার ভিউ.ভিউহোল্ডার শ্রেণীর ব্যবহারের মাধ্যমে রিসেলারভিউতে সমাধান করা হয়েছে। এটি রিসাইক্লারভিউ এবং লিস্টভিউয়ের অন্যতম প্রধান পার্থক্য। একটি পুনর্ব্যবহারযোগ্য বাস্তবায়ন করার সময় এই শ্রেণিটি ভিউহোল্ডার অবজেক্টটি সংজ্ঞায়িত করতে ব্যবহৃত হয় যা অ্যাডাপ্টার দ্বারা ভিউহোল্ডারকে একটি অবস্থানের সাথে আবদ্ধ করতে ব্যবহৃত হয়। এখানে অন্য একটি বিষয় লক্ষণীয়, তা হ'ল পুনর্ব্যবহারযোগ্য ভিউয়ের জন্য অ্যাডাপ্টারটি প্রয়োগ করার সময়, ভিউহোল্ডার সরবরাহ করা বাধ্যতামূলক। এটি বাস্তবায়নটিকে কিছুটা জটিল করে তোলে তবে তালিকার ভিউয়ের মধ্যে থাকা সমস্যাগুলি সমাধান করে।
2. লেআউট ম্যানেজার
তালিকাগুলির কথা বললে, কেবলমাত্র এক ধরণের তালিকাভিউ পাওয়া যায় যেমন উল্লম্ব তালিকাভিউ। অনুভূমিক স্ক্রোল সহ আপনি একটি তালিকাভিউ বাস্তবায়ন করতে পারবেন না। আমি জানি যে অনুভূমিক স্ক্রোলটি প্রয়োগ করার উপায় রয়েছে তবে আমার বিশ্বাস করুন এটি সেভাবে কাজ করার জন্য ডিজাইন করা হয়নি।
তবে এখন যখন আমরা অ্যান্ড্রয়েড রিসাইক্লারভিউ বনাম তালিকার ভিউতে দেখি, আমাদের পাশাপাশি অনুভূমিক সংগ্রহের জন্য সমর্থন রয়েছে। বাস্তবে এটি একাধিক ধরণের তালিকা সমর্থন করে। একাধিক ধরণের তালিকাগুলি সমর্থন করার জন্য এটি রিসাইক্লারভিউ.লায়আউটম্যানেজার শ্রেণি ব্যবহার করে। এটি লিস্টভিউয়ের কাছে নেই এমন নতুন কিছু। রিসাইক্লারভিউ তিন ধরণের পূর্বনির্ধারিত লেআউট ম্যানেজারকে সমর্থন করে:
লিনিয়ারলআউটম্যানেজার - রিসাইক্লিউউয়ের ক্ষেত্রে এটি সর্বাধিক ব্যবহৃত লেআউট ম্যানেজার। এর মাধ্যমে আমরা উভয় অনুভূমিক এবং উল্লম্ব স্ক্রোল তালিকা তৈরি করতে পারি। স্তম্ভিতগ্রিডগ্রাউট ম্যানেজার - এই লেআউট ম্যানেজারের মাধ্যমে আমরা স্তব্ধ স্তরের তালিকা তৈরি করতে পারি। ঠিক পিন্টারেস্ট স্ক্রিনের মতো। গ্রিডলাউটম্যানেজার– এই লেআউট ম্যানেজারটি কোনও চিত্র গ্যালারির মতো গ্রিড প্রদর্শন করতে ব্যবহার করা যেতে পারে।
3. আইটেম অ্যানিমেটার
একটি তালিকার অ্যানিমেশনগুলি সম্পূর্ণ নতুন মাত্রা, যার অন্তহীন সম্ভাবনা রয়েছে। একটি লিস্টভিউতে, যেমন কোনও বিশেষ বিধি নেই যার মাধ্যমে কেউ আইটেম সঞ্চারিত করতে, সংযোজন করতে বা মুছতে পারে। এর পরিবর্তে পরে অ্যান্ড্রয়েডের বিবর্তিত হিসাবে ভিউপ্রোপার্টি অ্যানিম্যাটরটি গুগলের চেট হাজে তালিকাভুক্তিতে অ্যানিমেশনগুলির জন্য এই ভিডিও টিউটোরিয়ালে প্রস্তাব করেছিলেন was
অন্যদিকে অ্যান্ড্রয়েড রিসাইকেলার ভিউ বনাম তালিকার ভিউয়ের সাথে তুলনা করে, অ্যানিমেশনগুলি পরিচালনা করার জন্য এটিতে রিসাইক্লার ভিউ.আইটেমএনিমেটার ক্লাস রয়েছে। এই শ্রেণীর মাধ্যমে কাস্টম অ্যানিমেশনগুলি আইটেম সংযোজন, মোছা এবং সরানো ইভেন্টগুলির জন্য সংজ্ঞায়িত করা যেতে পারে। এছাড়াও এটি কোনও ডিফল্ট আইটেম অ্যানিমেটার সরবরাহ করে, যদি আপনার কোনও কাস্টমাইজেশন প্রয়োজন না হয়।
4. অ্যাডাপ্টার
লিস্টভিউ অ্যাডাপ্টারগুলি প্রয়োগ করা সহজ ছিল। তাদের একটি প্রধান পদ্ধতি getView ছিল যেখানে সমস্ত যাদু ঘটত। যেখানে মতামত একটি অবস্থানের সাথে আবদ্ধ ছিল। এছাড়াও তাদের কাছে একটি আকর্ষণীয় পদ্ধতিতে রেজিস্ট্রার ডেটাসেটঅবার্সার থাকত যেখানে অ্যাডাপ্টারে একজন পর্যবেক্ষককে ঠিক সেট করতে পারে। এই বৈশিষ্ট্যটি রিসাইক্লিউউতেও উপস্থিত রয়েছে তবে এটির জন্য রিসাইক্লারভিউ.এডাপ্টারডাটাঅবার্সার ক্লাসটি ব্যবহৃত হয়। তবে তালিকাভিউর পক্ষে কথাটি হ'ল এটি অ্যাডাপ্টারের তিনটি ডিফল্ট বাস্তবায়ন সমর্থন করে:
অ্যারেএডাপ্টার কার্সর অ্যাডাপ্টার সিম্পল কার্সার অ্যাডাপ্টার যেখানে রিসাইক্লারভিউ অ্যাডাপ্টারের সাথে ডিবি কার্সার এবং অ্যারেলিস্টের জন্য অন্তর্নির্মিত লিস্টভিউ অ্যাডাপ্টারগুলির সমস্ত কার্যকারিতা রয়েছে। রিসাইক্লারভিউ.এডাপ্টারে এখন পর্যন্ত আমাদের অ্যাডাপ্টারে ডেটা সরবরাহের জন্য একটি কাস্টম বাস্তবায়ন করতে হবে। যেমন একটি বেসএডাপ্টার তালিকাগুলির জন্য করে। যদিও আপনি রিসাইক্লিউউ অ্যাডাপ্টার বাস্তবায়ন সম্পর্কে আরও জানতে চান তবে দয়া করে অ্যান্ড্রয়েড রিসাইক্লারভিউ উদাহরণটি দেখুন।
5. তথ্য পরিবর্তন পরিবর্তন
তালিকাভিউয়ের সাথে কাজ করার সময়, যদি ডেটা সেটটি পরিবর্তন করা হয় তবে ডেটা রিফ্রেশ করার জন্য আপনাকে অন্তর্নিহিত অ্যাডাপ্টারের notifyDataSetChanged পদ্ধতিতে কল করতে হবে। অথবা আপনি স্বয়ংক্রিয়ভাবে notifyDataSetChanged পদ্ধতিতে কল করতে ইচ্ছুক হলে setNotifyOnChange পদ্ধতিটি সেট করুন। তবে উভয় ক্ষেত্রেই এই তালিকাটি খুব ভারী। মূলত এটি তালিকার দৃষ্টিভঙ্গিগুলি সতেজ করে।
তবে একটি পুনর্ব্যবহারযোগ্য অ্যাডাপ্টারের বিপরীতে, যদি কোনও একক আইটেম বা বিস্তৃত আইটেম পরিবর্তিত হয়, সেই অনুসারে পরিবর্তনটি অবহিত করার জন্য বিভিন্ন পদ্ধতি রয়েছে। এগুলি যথাক্রমে notifyItemChanged এবং notifyItemRangeChanged এবং আরও অনেকের মত:
notifyItemInsterted notifyItemMoved notifyItemRangeInsterted notifyItemRangeRemoved এবং অবশ্যই পুরো তালিকাটি রিফ্রেশ করার জন্য মূল পদ্ধতিটি রয়েছে অর্থাৎ notifyDataSetChanged যা বিজ্ঞাপিত করে পুরো ডেটা সেটটি পরিবর্তিত হয়েছে।
6. আইটেম সজ্জা
একটি তালিকাভিউতে কাস্টম বিভাজক প্রদর্শন করতে, সহজেই তালিকাভিউ এক্সএমএলে এই প্যারামিটারগুলি যুক্ত করা যেতে পারে:
এক্সএইচটিএমএল অ্যান্ড্রয়েড: ডিভাইডার = "@ অ্যান্ড্রয়েড: রঙ / স্বচ্ছ" অ্যান্ড্রয়েড: ডিভাইডারহাইট = "5 ডিপি" 1 2 অ্যান্ড্রয়েড: ডিভাইডার = "@ অ্যান্ড্রয়েড: রঙ / স্বচ্ছ" অ্যান্ড্রয়েড: ডিভাইডারহাইট = "5 ডিপি" অ্যান্ড্রয়েড রিক্সিকারভিউ সম্পর্কে আকর্ষণীয় অংশটি হ'ল, এখন পর্যন্ত এটি ডিফল্টরূপে আইটেমগুলির মধ্যে একটি বিভাজক প্রদর্শন করে না। যদিও গুগলের ছেলেরা ইচ্ছাকৃতভাবে কাস্টমাইজেশনের জন্য এগুলি রেখে গেছে। তবে এটি একটি বিকাশকারীদের জন্য প্রচেষ্টাকে প্রচুর পরিমাণে বাড়িয়ে তোলে। আপনি যদি আইটেমগুলির মধ্যে একটি বিভাজক যুক্ত করতে চান, তবে আপনার পুনর্ব্যবহারযোগ্য ভিউ আইটেমডেকারেশন ক্লাস ব্যবহার করে একটি কাস্টম বাস্তবায়ন করতে হবে।
অথবা আপনি সরকারী নমুনা থেকে এই ফাইলটি ব্যবহার করে একটি হ্যাক প্রয়োগ করতে পারেন: DividerItemDecoration.java
On.অনটাইমটচলিস্টনার
ক্লিকগুলি সনাক্তকরণের জন্য, যেমন অ্যাডাপ্টারভিউ.অনআইটেমিক্লিকলিস্টনার ইন্টারফেসের সাহায্যে একটি সাধারণ বাস্তবায়ন ব্যবহৃত তালিকাগুলি।
তবে অন্যদিকে রিসাইক্লারভিউ.অনআইটেমটিউচলিস্টনার ইন্টারফেসটি অ্যান্ড্রয়েড রিসাইক্লারভিউতে স্পর্শ ইভেন্টগুলি সনাক্ত করতে ব্যবহৃত হয়। এটি বাস্তবায়নটিকে কিছুটা জটিল করে তোলে তবে এটি স্পর্শ ইভেন্টগুলিতে বাধা দেওয়ার জন্য বিকাশকারীকে আরও বেশি নিয়ন্ত্রণ দেয়। অফিশিয়াল ডকুমেন্টেশনে বলা হয়েছে, এটি অঙ্গভঙ্গি ম্যানিপুলেশনগুলির জন্য দরকারী হতে পারে কারণ এটি একটি স্পর্শ ইভেন্টটিকে পুনর্ব্যবহারযোগ্য ভিউতে পৌঁছে দেওয়ার আগে বাধা দেয়।
RecyclerView
আরও দ্রুততর এবং আরও উন্নততর API এর সাথে বহুমুখী। আইটেমগুলি সংযোজন বা সরানোর মতো বিষয়গুলিRecyclerView
আপনাকে কিছু না করেই ইতিমধ্যে প্রয়োগ করা হয়েছে । এটি নিয়ে কোনও প্রশ্নই আসে না, আপনারListView
ট্র্যাশের ক্যানের মধ্যে ফেলে দিন ,RecyclerView
শোটি চুরি করতে এখানে এসেছেন।