পুনর্ব্যবহারযোগ্য ভিউ বনাম তালিকাভিউ


295

অ্যান্ড্রয়েড বিকাশকারী ( তালিকা এবং কার্ড তৈরি করা ) থেকে:

রিসাইক্লারভিউ উইজেটটি তালিকাভিউর একটি আরও উন্নত এবং নমনীয় সংস্করণ।

ঠিক আছে, এটি দুর্দান্ত শোনায়, কিন্তু যখন আমি এই উদাহরণটি ছবিটি দেখলাম তখন আমি এই দুটিয়ের মধ্যে পার্থক্য সম্পর্কে সত্যিই বিভ্রান্ত হয়ে পড়েছিলাম।

এখানে চিত্র বর্ণনা লিখুন

উপরের ছবিটি ListViewকাস্টম অ্যাডাপ্টার ব্যবহার করে সহজেই তৈরি করা যায় ।

সুতরাং, কোন পরিস্থিতিতে একটি ব্যবহার করা উচিত RecyclerView?



1
@ ডেভ 78786: আমি আপনাকে পরামর্শ দিচ্ছি যে আপনি এখানে একটি মন্তব্য যুক্ত করুন যাতে আপনি এই প্রশ্নের বহু বিদ্যমান উত্তর থেকে কী অনুপস্থিত অনুভব করছেন তা বিশদ ব্যাখ্যা করে।
কমন্সওয়্যার

উত্তর:


374

RecyclerViewListViewউন্নতি হিসাবে তৈরি করা হয়েছিল , সুতরাং হ্যাঁ, আপনি ListViewনিয়ন্ত্রণ সহ একটি সংযুক্ত তালিকা তৈরি করতে পারেন , তবে এটি ব্যবহার RecyclerViewকরা সহজতর:

  1. উপরে / নিচে স্ক্রোল করার সময় কক্ষগুলি পুনরায় ব্যবহার করুন - ListViewঅ্যাডাপ্টারে ভিউ হোল্ডার বাস্তবায়নের মাধ্যমে এটি সম্ভব , তবে এটি একটি alচ্ছিক জিনিস ছিল, যখন RecycleViewএটি অ্যাডাপ্টার লেখার ডিফল্ট পদ্ধতিতে।

  2. এর ধারক থেকে তালিকাটি ডিকুপ্লস করে - যাতে আপনি সেটিং সহ বিভিন্ন পাত্রে (লিনিয়ারলআউট, গ্রিডলাউট) রানের সময় তালিকার আইটেমগুলি সহজেই রাখতে পারেন LayoutManager

উদাহরণ:

mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view);
mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
//or
mRecyclerView.setLayoutManager(new GridLayoutManager(this, 2));
  1. সাধারণ তালিকার ক্রিয়াকে অ্যানিমেট করে - অ্যানিমেশনগুলি ডিউপলড এবং এটাকে অর্পণ করা হয় ItemAnimator

আরও কিছু আছে RecyclerView, তবে আমি মনে করি যে এই পয়েন্টগুলি মূল বিষয়গুলি।

সুতরাং, উপসংহারে বলা যায়, RecyclerView"তালিকা উপাত্ত" পরিচালনা করার জন্য আরও নমনীয় নিয়ন্ত্রণ যা উদ্বেগের প্রতিনিধিদের নিদর্শন অনুসরণ করে এবং কেবল একটি কাজ করে ফেলে - আইটেমগুলি পুনর্ব্যবহার করে।


16
তালিকা দেখার মূল দায়িত্ব হ'ল ১) প্রদত্ত অঞ্চলে আইটেমটি দৃশ্যমানভাবে সাজানো এবং বেশি পছন্দ করা ২) আইটেমগুলি পুনরায় ব্যবহার করুন। রিসিলারভিউয়ের সাথে এটি একক দায়বদ্ধতায় বিভক্ত হয়ে যায় - পুনর্ব্যবহারযোগ্য ভিউ পুনর্ব্যবহার করে এবং এটি দেওয়া হয় লেআউটম্যানেজার পর্দায় আইটেমগুলি সাজায়। অন্য কথায় পুনর্ব্যবহারযোগ্য ভিউ স্ক্রিনে আইটেমগুলি কোথায় রাখবেন তা জানেনা / যত্ন জানে না, এটি কেবল পুনর্ব্যবহারের যত্ন নেয়। অ্যান্ড্রয়েড ডক থেকে: "লেআউটম্যানেজার পরিবর্তন করে একটি
পুনর্ব্যবহারযোগ্য ভিউ

32
"উপরে / স্ক্রোল করার সময় কক্ষগুলি পুনরায় ব্যবহার করুন": যতদূর আমি জানি এটি সম্পূর্ণরূপে ভুল কারণ ভিউহোল্ডার ছাড়া তালিকার দৃষ্টিতে এমনকি এটি ঘটে।
রুবান

16
লিস্টভিউতে ভিউ হোল্ডারের মূল ব্যবহার হ'ল লিস্টভিউয়ের স্ক্রোলিংয়ের সময় আপনার কোডটি ফাইন্ডভিউআইডি () প্রায়শই কল করতে পারে যা কার্য সম্পাদনকে ধীর করতে পারে। এমনকি যখন অ্যাডাপ্টার পুনর্ব্যবহারের জন্য একটি স্ফীত দৃশ্যটি ফেরত দেয়, তবুও আপনাকে উপাদানগুলি সন্ধান এবং আপডেট করতে হবে। FindViewById () এর বারবার ব্যবহারের উপায় "ভিউ ধারক" ডিজাইন প্যাটার্নটি ব্যবহার করা। একটি ভিউহোল্ডার অবজেক্ট লেআউটের ট্যাগ ক্ষেত্রের মধ্যে প্রতিটি উপাদান ভিউ সংরক্ষণ করে, তাই আপনি বারবার সন্ধানের প্রয়োজন ছাড়াই অবিলম্বে এগুলিতে অ্যাক্সেস করতে পারবেন।
রুবান

7
আমি যা বলার চেষ্টা করি তা হল সারিটি পুনর্ব্যবহার করা হবে এমনকি আপনি ভিউ ধারক ছাড়াই তালিকাগুলি প্রয়োগ করেন। এটাই হল তালিকার সম্পত্তি এবং সুবিধা। এটাই তারা তালিকার দর্শন তৈরি করেছিল।
রুবান

তারা বিশেষ কিছুই করেনি, এই বৈশিষ্ট্যগুলি যে কেউ যুক্ত করতে পারেন। আপনি তালিকাভিউ এবং বেসএডাপ্টার প্রসারিত করতে পারেন এবং আপনি চাইলে এতে কোনও বৈশিষ্ট্য যুক্ত করতে পারেন। আসলে এই দুটিয়ের মধ্যে কোনও পার্থক্য নেই।
MDP

39

তালিকার দৃশ্যের ভাল কার্য সম্পাদন করার জন্য আপনাকে ধারক প্যাটার্নটি বাস্তবায়ন করতে হবে এবং বিশেষত যখন আপনি বিভিন্ন ধরণের দর্শন দিয়ে তালিকাটি জনপ্রিয় করতে চান তখন গণ্ডগোলের বিষয়টি সহজ।

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


6
হ্যাঁ ! , কখন পুনর্ব্যবহারযোগ্য পর্যালোচনা ব্যবহার করবেন না সে বিষয়ে আরও আলোচনা হওয়া উচিত । যদি আপনার সারিগুলিতে মডেলটির ডেটার উপর ভিত্তি করে গতিশীলভাবে সামগ্রী যুক্ত হয় এবং আপনি পুনরায় ব্যবহারকারীর দৃশ্য, বুম ব্যবহার করেন।
রানা দীপ

1
আপনার মডেল ডেটার উপর ভিত্তি করে গতিশীল সামগ্রী যুক্ত করতে সক্ষম হওয়া উচিত। আপনি যে ধরণের সামগ্রী সমর্থন করতে চান তার জন্য আপনাকে কেবল ভিন্ন মতামত সেটআপ করতে হবে।
ক্যাপ্টারস্পেক্ট

36

ListViewপূর্বপুরুষ RecyclerView। এমন অনেক কিছুই ছিল যা ListViewহয় হয় নি, বা ভাল করে নি। আপনি যদি এর ত্রুটিগুলি সংগ্রহ করতে ListViewএবং সমস্যাগুলি বিভিন্ন ডোমেনে বিমূর্ত করে সমাধান করে থাকেন তবে আপনি পুনর্ব্যবহারকারী ভিউয়ের মতো কিছু দিয়ে শেষ করতে চান। লিস্টভিউগুলির সাথে মূল সমস্যাগুলি এখানে:

  • Viewএকই আইটেমের ধরণের জন্য পুনঃব্যবহার কার্যকরভাবে প্রয়োগ করেনি (একটিতে ব্যবহৃত অ্যাডাপ্টারগুলির একটিতে দেখুন ListView, আপনি যদি ভিউ পদ্ধতিটি অধ্যয়ন করেন তবে আপনি দেখতে পাবেন যে কোনও প্রোগ্রামারকে প্রতিটি সারিটির জন্য একটি নতুন ভিউ তৈরি করতে বাধা দেয় না এমনকি যদি একটি পাস করা হয়) convertViewভেরিয়েবলের মাধ্যমে )

  • ব্যয়বহুল findViewByIdব্যবহারগুলি প্রতিরোধ করেনি (এমনকি উপরে উল্লিখিত মতামতগুলি পুনর্ব্যবহার করলেও ডিভসের পক্ষে findViewByIdশিশু দর্শনের প্রদর্শিত সামগ্রীগুলি আপডেট করার জন্য কল করা সম্ভব হয়েছিল ViewHolderin প্যাটার্নটির মূল উদ্দেশ্য ListViewsছিল findViewByIdকলগুলি ক্যাশে করা However তবে এটি কেবল ছিল প্ল্যাটফর্মের অংশ না হওয়ায় আপনি যদি এটি সম্পর্কে জানতেন তবে উপলভ্য)

  • সারি প্রদর্শিত দৃশ্যের সাহায্যে কেবল সমর্থিত উল্লম্ব স্ক্রোলিং (পুনর্ব্যবহারযোগ্য দৃষ্টিভঙ্গি কোথায় দৃষ্টিভঙ্গি স্থাপন করা হয় এবং কীভাবে সে স্থানান্তরিত হয় তা যত্ন করে না, এটি একটি বিমূর্ত করে তোলে LayoutManagerA একটি পুনর্ব্যবহারকারী তাই ListViewউপরে বর্ণিত as তিহ্যগত এবং সেই সাথে জিনিসগুলিকে সমর্থন করতে পারেGridView তবে এটি সীমাবদ্ধ নয়, এটি আরও কিছু করতে পারে তবে এটি ঘটানোর জন্য আপনাকে প্রোগ্রামিংয়ের কাজ করতে হবে) work

  • যুক্ত / মুছে ফেলা অ্যানিমেশনগুলি কোনও ব্যবহারের ক্ষেত্রে বিবেচিত ছিল না। এটি কীভাবে যায় তা নির্ধারণ করা সম্পূর্ণ আপনার উপর নির্ভর করে (রিসাইক্লার ভিউয়ের সাথে তুলনা করুন Ad

সংক্ষেপে RecyclerViewএকটি আরও নমনীয় গ্রহণListView , যদিও আপনার পক্ষ থেকে আরও কোডিংয়ের প্রয়োজন হতে পারে।


20

এটি RecyclerViewহ'ল একটি নতুন ভিউগ্রুপ যা কোনও অ্যাডাপ্টার-ভিত্তিক ভিউ একইভাবে উপস্থাপনের জন্য প্রস্তুত। এটির উত্তরসূরি হিসাবে অনুমান করা হয় ListView and GridViewএবং এটি এটিতে পাওয়া যায় latest support-v7 versionRecyclerViewউন্নয়ন হয়েছে extensibility মনে, তাই এটি লেআউট কোন ধরনের আপনি মনে করতে পারেন নির্মাণ করা সম্ভব, কিন্তু না একটু ব্যথা-ইন-গাধা ডোজ ছাড়া।

আন্তোনিও লিভা থেকে নেওয়া উত্তর

 compile 'com.android.support:recyclerview-v7:27.0.0'

RecyclerViewআসলে একটি powerful viewতুলনায় ListView। আরও তথ্যের জন্য আপনি এই পৃষ্ঠাটি দেখতে পারেন ।


5
আমি আপনার উত্তর থেকে এই বাক্যটি পছন্দ করি: এটি অ্যান্ড্রয়েড, সুতরাং জিনিসগুলি কখনই সহজ হয় না এটি অ্যান্ড্রয়েড অ্যাপ্লিকেশন বিকাশ যা ঘটেছিল তার জন্য এটি সত্য তবে আমি মনে করি যে তারা এপিআই এবং ডিজাইনের পাশাপাশি নকশাগুলি কীভাবে ডিজাইন করেছিলেন তাতে এটি কিছু ভুল I অ্যান্ড্রয়েড অ্যাপ। তাত্ত্বিকভাবে একটি ভাল ডিজাইনের মাধ্যমে প্রোগ্রামারদের থেকে সমস্ত সম্ভাব্য জটিলতাগুলি আড়াল করা উচিত (তবে এখনও তারা উন্নতদের পক্ষে অ্যাক্সেসেবল হতে পারে), যা তারা সাধারণত যত্নশীল তা ইউআই সম্পর্কিত সমস্যাগুলি পরিচালনা করার সাথে লড়াই করার পরিবর্তে ব্যবসায়ের যুক্তি, ডেটা এবং অন্যান্য অ্যালগরিদমগুলি (এবং বর্তমানে উপস্থিত আরও ক্লান্তিকর সমস্যাগুলি) অ্যান্ড্রয়েড বিকাশে)।
নিরাশ

18

রিসাইক্লারভিউ এবং তালিকাভিউয়ের মধ্যে কয়েকটি মূল পয়েন্ট / পার্থক্য নীচে দেওয়া হয়েছে। বুদ্ধি করে আপনার কল নিন।

যদি তালিকাভিউ আপনার পক্ষে কাজ করে তবে মাইগ্রেশন করার কোনও কারণ নেই। আপনি যদি একটি নতুন ইউআই লিখছেন, তবে আপনি রিসাইক্লার ভিউয়ের সাথে আরও ভাল।

রিসিলারভিউতে ভিউহোল্ডার ইনবিল্ট রয়েছে, তালিকার ভিউতে আমাদের নিজস্ব প্রয়োগ করার দরকার নেই। এটি নির্দিষ্ট সূচকেও বিজ্ঞপ্তিকে সমর্থন করে

আইটেমগুলি সংযোজন বা সরানোর মতো বিষয়গুলি আপনাকে কিছু না করেই ইতিমধ্যে পুনর্ব্যবহারযোগ্য দৃশ্যে প্রয়োগ করা হয়েছে

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

i) লিনিয়ারলআউটম্যানেজার - যা উভয় উল্লম্ব এবং অনুভূমিক তালিকার সমর্থন করে, ii) স্তিমিতলয়আউটআউট ম্যানেজার - যা স্তিমিত তালিকার মতো পিন্টেস্ট সমর্থন করে, iii) গ্রিডলাউটম্যানেজার - যা গ্যালারী অ্যাপ্লিকেশনগুলিতে দেখা হিসাবে গ্রিডগুলি প্রদর্শন সমর্থন করে।

এবং সর্বোত্তম বিষয়টি হ'ল আমরা আমাদের যা যা করতে চাই এগুলি সমস্ত গতিশীলভাবে করতে পারি।


14

প্রধান সুবিধা:

ViewHolderডিফল্ট হিসাবে ইন উপলব্ধ ListView। আমরা স্পষ্টভাবে এর ভিতরে তৈরি করব getView()RecyclerViewInbuilt হয়েছে Viewholder


4

উপরের পার্থক্য ছাড়াও নিম্নলিখিত আরও কয়েকটি রয়েছে:

  1. আরভি দেখতে দেখার জন্য ডেটা দেখার এবং বাঁধনকে পৃথক করে। LV- তে আপনাকে ডেটা বাঁধাইয়ের আগে ভিউ তৈরির জন্য কনভার্টভিউটি বাতিল বা না তা পরীক্ষা করে দেখতে হবে। সুতরাং, আরভির ক্ষেত্রে, ভিউটি কেবল তখনই তৈরি করা হবে যখন এটি প্রয়োজন হয় তবে এলভি এর ক্ষেত্রে, কেউ রূপান্তরদর্শনের জন্য চেকটি মিস করতে পারে এবং প্রতিবার ভিউ তৈরি করে।

  2. গ্রিড এবং তালিকার মধ্যে স্যুইচ করা লেআউট ম্যানেজারের সাহায্যে এখন আরও সহজ।

  3. কেবলমাত্র একক আইটেম পরিবর্তন করা হলেও সমস্ত আইটেমকে অবহিত এবং আপডেট করার দরকার নেই।

  4. একজনকে এলভির ক্ষেত্রে ভিউ ক্যাচিং বাস্তবায়ন করতে হয়েছিল। এটি আরভিতে ডিফল্টরূপে সরবরাহ করা হয়। (ভিউ ক্যাচিং এন পুনর্ব্যবহারের মধ্যে পার্থক্য রয়েছে))

  5. আরভি এর ক্ষেত্রে খুব সহজ আইটেম অ্যানিমেশন।


4

তালিকার ওপরে পুনর্ব্যবহারকারীদের সুবিধা:

  1. ডিফল্টরূপে ভিউহোল্ডার ধারণ করে।

  2. সহজ অ্যানিমেশন।

  3. অনুভূমিক, গ্রিড এবং স্থির লেআউট সমর্থন করে

পুনর্ব্যবহারযোগ্য ওভারের তালিকার ভিউ:

  1. বিভাজক যুক্ত করা সহজ।

  2. সাধারণ সরল তালিকার জন্য ইনবিল্ট অ্যারেএডাপ্টার ব্যবহার করতে পারেন

  3. শিরোনাম এবং পাদচরণ সমর্থন করে।

  4. অনআইটেমিক্লিকলিস্টনারকে সমর্থন করে।


4
যতদূর আমি বুঝতে পেরেছি আপনি সহজেই recyclerView.addItemDecoration(new DividerItemDecoration(getContext(), LinearLayoutManager.VERTICAL));কিছু ব্যবহারের পরে একটি পুনর্ব্যবহারকারী recyclerView = view.findViewById(R.id.feed);
ভিউতে

1
@ এনভিয়েন্স তালিকা দেখার জন্য আপনি বিভাজক যুক্ত করতে পারেন, এর উচ্চতা সামঞ্জস্য করতে পারেন এবং এটির রঙটি সব xML এ নিজেই পরিবর্তন করতে পারেন। ডিভাইডারের জন্য বর্তমান বাস্তবায়ন ঠিক আছে, পূর্বে পুনর্ব্যবহারের জন্য ডিভাইডার যুক্ত করা একটি দুঃস্বপ্ন ছিল, ডিভাইডারের জন্য পূর্ববর্তী বাস্তবায়ন কীভাবে হয়েছিল তা দেখতে এই উত্তরটি পরীক্ষা করে দেখুন staoverflow.com/a/27037230/6478047
মনোহর রেড্ডি

4

পুনর্ব্যবহারযোগ্য ভিউ এবং তালিকাভিউয়ের মধ্যে 8 পার্থক্য

পুনর্ব্যবহারযোগ্য বনাম তালিকাভিউ

1. ভিউহোল্ডার প্যাটার্ন

ভিউবিআইআইডি () পদ্ধতিগুলিতে কল হ্রাস করতে ব্যবহৃত প্যাটার্ন ।

তালিকাভিউতে, আপনি ভিউহোল্ডার ব্যবহার না করে সহজেই একটি তালিকা তৈরি করতে পারেন। তবে রিসাইক্লিউউয়ের ক্ষেত্রে নয়।

2. অ্যাডাপ্টার

উভয়ই অ্যাডাপ্টারভিউ, হ্যাঁ। এটি অ্যাডাপ্টার শ্রেণির উপর ভিত্তি করে কাজ করে।

অ্যারেএডাপ্টার, কার্সর অ্যাডাপ্টারের মতো ডিফল্ট অ্যাডাপ্টার ব্যবহার করে তালিকাভিউ তৈরি করা সহজ তবে পুনরায় ব্যবহারকারীর দ্বারা রিসাইক্লারভিউ সরবরাহ করা হয় dএডাপ্টার শ্রেণি, একটি নতুন কাস্টম অ্যাডাপ্টার শ্রেণি তৈরি করতে।

আপনি আরেকেএডাপ্টার বা রিসাইক্লারভিউয়ের সাথে অন্য কোনও বিল্ট-ইন অ্যাডাপ্টার ব্যবহার করতে পারবেন না।

3. আইটেমের ব্যবস্থা

আমি সহজ এবং কম কোডে উল্লম্ব তালিকাভিউ তৈরি করেছি। তবে আমাদের যদি গ্রিডভিউ তৈরি করা দরকার?

রিসাইক্লারভিউ এর আইটেমগুলি সাজানোর জন্য লেআউট ম্যানেজার ব্যবহার করে। এখানে 3 লেআউটম্যানেজার ক্লাস রয়েছে।

  • LinearLayoutManager - রৈখিক টাইপ তালিকা তৈরি করতে সাহায্য করে।
  • গ্রিডলাউটম্যানেজার - গ্রিড তৈরি করতে ব্যবহৃত হয়।
  • স্তম্ভিতগ্রিডগ্রাউট ম্যানেজার - স্ট্যাজিডগ্রিডগ্রিড তৈরি করতে ব্যবহৃত হয়।

অ্যানিমেশন

তালিকাভিউতে বেসিক অ্যানিমেশনগুলির অভাব রয়েছে। তবে রিসাইক্লারভিউ সহজ অ্যানিমেশন নিয়ে আসে।

বিভাজক

অ্যান্ড্রয়েড বিভাজক এবং অ্যান্ড্রয়েড dividerHeight বৈশিষ্ট্যাবলী বা setDivider (), setDividerHeight () আপনার ListView কাস্টম বিভাজক করতে সাহায্য করে।

25.1.0 থেকে, আপনি একটি সাধারণ ডিভাইডার তৈরি করতে ডিভাইডার আইটেমডেকোরেশন ক্লাস ব্যবহার করতে পারেন ।

ইভেন্টগুলি ক্লিক করুন

রিসাইক্লারভিউতে অনআইটেমিক্লিকলিস্টারের অভাব রয়েছে , হ্যাঁ এটি অত্যন্ত দুঃখজনক। তবে তারা বিকাশকারীকে পুনর্ব্যবহারযোগ্য ভিউ.অনআইটম টুচলিস্টনার সরবরাহ করে আরও নিয়ন্ত্রণ দেয়

পদ্ধতিগুলি অবহিত করুন

সঠিক অ্যানিমেশন সম্পাদন করার জন্য আপনাকে উপযুক্ত নোটিফাই * পদ্ধতিগুলি কল করতে হবে। তালিকাভিউয়ের সাথে তুলনা করা হলে রিসিলারভিউতে প্রচুর বিজ্ঞপ্তি * পদ্ধতি রয়েছে।


3

আমি মনে করি তাদের মধ্যে প্রধান এবং সবচেয়ে বড় পার্থক্য হ'ল ListViewআইটেমটি তৈরি করার সময় বা রাখার সময় অবস্থানটির সন্ধান করে অন্যদিকে RecyclerViewআইটেমটির ধরণটি সন্ধান করে। যদি একই ধরণের তৈরি অন্য কোনও আইটেম থাকে তবে RecyclerViewতা আবার তৈরি করে না। এটি প্রথমে অ্যাডাপ্টারকে জিজ্ঞাসা করে এবং তারপরে পুনর্ব্যবহারযোগ্য পুলকে জিজ্ঞাসা করে, যদি পুনর্ব্যবহৃত পুলটি বলে "হ্যাঁ আমি এর অনুরূপ একটি প্রকার তৈরি করেছি", তবে RecyclerViewএকই ধরণের তৈরি করার চেষ্টা করবেন না। ListViewএই ধরণের পুলিং ব্যবস্থা নেই।


2

আমার মতে RecyclerViewতালিকাগুলিতে ব্যবহৃত রিসাইকেল প্যাটার্নটি দিয়ে সমস্যাটি সমাধান করা হয়েছিল কারণ এটি বিকাশকারীর জীবনকে আরও কঠিন করে তুলছিল। অন্য যে কোনওটি আপনি কম বেশি পরিচালনা করতে পারেন। উদাহরণ হিসেবে বলা যায় আমি একই অ্যাডাপ্টার ব্যবহার ListViewএবং GridViewএটি উভয় দেখার ব্যাপার না getView, getItemCount,getTypeCount ব্যবহার করা হয়, তাই এটি একই। গ্রিড অ্যাডাপ্টারগুলির সাথে বা তার সাথে ইতিমধ্যে আপনার জন্য কাজ করা RecyclerViewপ্রয়োজন হয় না । আপনি যদি নিজের তালিকাগুলিতে সঠিকভাবে প্যাটার্নটি প্রয়োগ করেন তবে আপনি আর কোনও বড় উন্নতি দেখতে পাবেন না ।ListViewListAdapterGridViewViewHolderRecycleView


2

আমি কিছুটা কাজ করেছিলাম RecyclerViewএবং এখনও পছন্দ করি ListView

  1. অবশ্যই, উভয়ই ব্যবহার করে ViewHolders, সুতরাং এটি কোনও সুবিধা নয়।

  2. RecyclerViewকোডিংয়ে আরও কঠিন।

  3. A তে RecyclerViewশিরোনাম এবং পাদচরণ নেই, সুতরাং এটি একটি বিয়োগ।

  4. একটি ListViewএকটি ViewHolder করতে প্রয়োজন হয় না। আপনি বিভাগ বা সাবহেডারের সাথে একটি তালিকা রাখতে চান এমন ক্ষেত্রে স্বতন্ত্র আইটেমগুলি (ভিউহোল্ডার ছাড়াই) তৈরি করা ভাল ধারণা হবে, এটি সহজ এবং পৃথক শ্রেণীর প্রয়োজন নেই।


1
আপনি পুনর্ব্যবহারযোগ্য অ্যাডাপ্টারে শিরোনাম এবং সামগ্রীর দিক তৈরি করতে পারেন এবং এটি তালিকার দর্শন থেকে আরও নমনীয় হবে। আপনার মনের তালিকা দর্শনের পুনর্ব্যবহার করাতে কেবল শক্ত কিন্তু আপনি যদি এটি করতে পারেন তবে আপনি কী বোঝাতে চাইবেন তা বুঝতে পারবেন list তালিকাম প্রত্যাহার কেবল রিসাইক্লারভিউ
গুডলাক

2
@ ইরজিদুরান, আমি উভয়ই ব্যবহার করেছি। তালিকাভিউ এখনও ব্যাপকভাবে ব্যবহৃত হয় এবং হ্রাস করা হয় না। এছাড়াও এটি রিসাইক্লিউউয়ের চেয়ে কম স্মৃতি নষ্ট করে। আপনি যদি কেবল তালিকার ভিউটিকে রিসাইকেলার ভিউয়ের সাথে প্রতিস্থাপন করতে চান তবে এটি ভাল ধারণা হবে না।
কুলমাইন্ড

এই ছেলেরা কেন পুনর্ব্যবহারযোগ্য পর্যালোচনা করেছে তা পরীক্ষা করে দেখুন? তার তালিকার উন্নতি, তাই না? গুগল প্লেতে অনেকগুলি পুরানো লিবস এবং অ্যাপ্লিকেশন রয়েছে যাতে আপনি সঠিক তালিকাদর্শন এখনও ব্যাপকভাবে ব্যবহৃত হয় just অতীতে পুরানো জিনিসগুলি রেখে দিন। তুলনা -> লিঙ্ক
erginduran

@ ইরগিন্দুরান, ধন্যবাদ আপনি ঠিক বলেছেন, রিসাইক্লার ভিউয়ের কিছু সুবিধা রয়েছে। আমার উত্তরটি স্বাভাবিক কাজগুলির বিষয়ে ছিল যেখানে তালিকাভিউ কখনও কখনও একজন রিসাইক্লার ভিউয়ের চেয়ে আরও সহজ। অবশ্যই, অ্যানিমেশন এবং অন্যান্য কিছু উন্নতিগুলি তালিকাভিউতে কঠিন বা সম্ভব নয়।
কুলমাইন্ড

আমি এই বিষয়ে কিছু দিক যুক্ত করেছি, stackoverflow.com/a/39721769/2914140 দেখুন
কুলমাইন্ড

1
  1. ক্লিক শ্রোতাদের সরবরাহ করতে আপনি একটি ইন্টারফেস ব্যবহার করতে পারেন। আমিও লাস্টভিউগুলির সাথে এই কৌশলটি ব্যবহার করি।
  2. কোনও বিভাজক নেই: কেবল আপনার সারিতে ম্যাচ_প্যারেন্টের প্রস্থ এবং 1 ডিপি এর উচ্চতা সহ একটি দৃশ্য যুক্ত করুন এবং এটি একটি পটভূমির রঙ দিন।
  3. সারি ব্যাকগ্রাউন্ডের জন্য কেবল স্টেটলিস্ট নির্বাচনকারী ব্যবহার করুন।
  4. অ্যাডহাইডারভিউ তালিকার ভিউগুলিতেও এড়ানো যায়: কেবলমাত্র শিরোনামটি ভিউয়ের বাইরে রাখুন।

সুতরাং, যদি দক্ষতা আপনার উদ্বেগ, তবে হ্যাঁ, একটি তালিকার ভিউটিকে একটি পুনর্ব্যবহারযোগ্য সাথে প্রতিস্থাপন করা ভাল ধারণা a


0

সহজ উত্তর: আপনি এমন পরিস্থিতিতে যেখানে আপনার প্রচুর আইটেম দেখাতে চান সেখানে রিসাইক্লারভিউ ব্যবহার করা উচিত এবং সেগুলির সংখ্যা গতিশীল। আইটেমের সংখ্যা সর্বদা একই থাকে এবং পর্দার আকারের মধ্যে সীমাবদ্ধ থাকে কেবল তখন তালিকাভিউ ব্যবহার করা উচিত।

আপনি এটিকে আরও শক্ত মনে করেন কারণ আপনি কেবল অ্যান্ড্রয়েড লাইব্রেরিকে মাথায় রেখেই ভাবছেন।

আজ প্রচুর অপশন উপস্থিত রয়েছে যা আপনাকে আপনার নিজস্ব অ্যাডাপ্টার তৈরি করতে সহায়তা করে, ডায়নামিক আইটেমগুলির তালিকা এবং গ্রিডগুলি তৈরি করতে সহজ করে তোলে যা আপনি বেছে নিতে পারেন, পুনরায় অর্ডার করতে পারেন, অ্যানিমেশনটি ব্যবহার করতে পারেন, ডিভাইডারগুলি ব্যবহার করতে পারেন, পাদলেখগুলি, শিরোলেখ ইত্যাদিসহ ইত্যাদি can

ভয় পাবেন না এবং রিসাইক্লার ভিউতে চেষ্টা করবেন না, আপনি একটি তালিকাভিউ এবং একটি পুনর্ব্যক্তিকারী ভিউতে ওয়েব থেকে ডাউনলোড করা 100 আইটেমের (ফেসবুক নিউজের মতো) একটি তালিকা তৈরি করতে পছন্দ করতে পারেন, আপনি ইউএক্স (ব্যবহারকারী) এর মধ্যে পার্থক্য দেখতে পাবেন অভিজ্ঞতা) আপনি যখন স্ক্রোল করার চেষ্টা করবেন তখন সম্ভবত এটি করার আগে পরীক্ষা অ্যাপটি বন্ধ হয়ে যাবে।

সহজ অ্যাডাপ্টার তৈরি করার জন্য আপনাকে এই দুটি গ্রন্থাগারটি পরীক্ষা করার পরামর্শ দিচ্ছি:

মাইকপেনজ দ্বারা ফাস্টএডাপ্টার

ডেভিডস দ্বারা ফ্লেক্সিবলএডাপ্টার


1
আমি মনে করি দুজনের পারফরম্যান্স পার্থক্য সম্পর্কে আপনার বক্তব্য অতিরঞ্জিত। আমি ২০১২ সাল থেকে একটি প্রোডাকশন অ্যাপে লিস্টভিউটি ব্যবহার করছি, প্রতিটি সারিতে ~ 10 টি বিভিন্ন ভিউ সহ 3000 আইটেম প্রদর্শন করছি, এমনকি পুরানো অ্যান্ড্রয়েড 2.3 ডিভাইসগুলিতে এমনকি কোনও সমস্যা পারফরম্যান্সের ভিত্তিতে নেই।
ম্যাগনাস ডাব্লু

0

পুনর্ব্যবহারযোগ্য তথ্য

RecyclerViewসঙ্গে চালু করা হয় Android 5.0 (Lollipop)। এটি সমর্থন লাইব্রেরিতে অন্তর্ভুক্ত রয়েছে । সুতরাং এটি অ্যান্ড্রয়েড এপিআই লেভেল 7 এর সাথে সামঞ্জস্যপূর্ণ।

একইভাবে ListView, RecyclerView’sমূল ধারণাটি হল পারফরম্যান্স বান্ধব উপায়ে তালিকা কার্যকারিতা সরবরাহ করা। এই দৃশ্যের নামের 'রিসাইক্লার' অংশটি কাকতালীয়ভাবে নেই। RecyclerViewআসলে আইটেম যা দিয়ে এটি বর্তমানে কাজ করছে জিনিসকে পারবেন না। পুনর্ব্যবহারযোগ্য প্রক্রিয়া ভিউ হোল্ডার নামে পরিচিত একটি প্যাটার্নকে ধন্যবাদ জানায় ।

পুনর্ব্যবহারযোগ্য ভিউরস এবং কনস

পেশাদাররা:

  • আইটেম যুক্ত, আপডেট এবং অপসারণের জন্য সংহত অ্যানিমেশন
  • ভিউহোল্ডার প্যাটার্নটি ব্যবহার করে দেখা পুনর্ব্যবহারযোগ্য প্রয়োগ করে
  • উভয় গ্রিড এবং তালিকা সমর্থন করে
  • উল্লম্ব এবং অনুভূমিক স্ক্রোলিং সমর্থন করে
  • ডিফুটিল এর সাথে একসাথে ব্যবহার করা যায়

কনস:

  • জটিলতা যুক্ত করে
  • অনআইটেমিক্লিকলিস্টার নেই

তালিকাভিউ তথ্য

ListViewযেহেতু Android এর খুব শুরুতে হয়েছে প্রায়। এটি এমনকি উপলব্ধ ছিল API Level 1এবং এটির একই উদ্দেশ্য রয়েছে RecyclerView

তালিকাগুলির ব্যবহার আসলেই সহজ। এই দিক থেকে এটি এর উত্তরসূরির মতো নয়। শেখার বক্ররেখার পুনর্ব্যবহারযোগ্য দর্শনের চেয়ে মসৃণ। সুতরাং, এটি উপলব্ধি করা সহজ। আমাদের লেআউটম্যানেজার, আইটেমএনিমেটর বা ডিফআপিলের মতো জিনিসগুলির সাথে ডিল করতে হবে না।

তালিকাগুলির পেশাদার ও কনস

পেশাদাররা:

  • সাধারণ ব্যবহার
  • ডিফল্ট অ্যাডাপ্টার
  • OnItemClickListener উপলব্ধ
  • এটা এর ভিত্তি ExpandableListView

কনস:

  • ভিউহোল্ডার প্যাটার্নটির ব্যবহার আলিঙ্গন করে না

0

তালিকাভিউ এবং পুনর্ব্যবহারযোগ্য ভিউয়ের মধ্যে অনেক পার্থক্য রয়েছে, তবে আপনার বিশেষত নিম্নলিখিত বিষয়গুলি সম্পর্কে সচেতন হওয়া উচিত:

  • ভিউহোল্ডার প্যাটার্নটি সম্পূর্ণরূপে তালিকাভিউতে alচ্ছিক, তবে এটি পুনর্ব্যবহারযোগ্য ভিউতে বেকড।
  • তালিকাগুলি কেবল উল্লম্ব স্ক্রোলিং সমর্থন করে তবে পুনর্ব্যবহারযোগ্য ভিউ উল্লম্বভাবে স্ক্রোলিং তালিকার মধ্যে সীমাবদ্ধ নয়।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.