2014-10-26 2 views
22

मैंने अभी रीसाइक्लिंग व्यू का उपयोग करना शुरू कर दिया है और मैंने इसे हेडर, फ़ूटर, डिवाइडर, सूची चयनकर्ता जैसी कई विशेषताओं में कमी देखी है, अब मेरे पास ListView के बजाय इसका उपयोग करने के बारे में दूसरे विचार हैं।ListView की तुलना में RecyclerView फायदे क्या हैं?

ListView की तुलना में RecyclerView के फायदे और नुकसान क्या हैं? क्या यह सूची दृश्य से अधिक जटिल दृश्यों को संभाल सकता है?

मैं अब तक सूची दृश्य का उपयोग कर रहा हूं और कुछ के लिए, क्या यह रीसाइक्लिंग व्यू पर स्विच करने का समय है या क्या यह बहुत जल्द है?

+1

उन सुविधाओं के सभी दृश्य के बाहर अब कर रहे हैं के लिए आवश्यक आवश्यकता होगी http://www.grokkingandroid.com/first-glance -androids-recyclerview/ – pskink

उत्तर

79

एंड्रॉइड लॉलीपॉप के आगमन के साथ, रीसाइक्लर व्यू आधिकारिक तौर पर अपना रास्ता बना दिया। RecyclerView अधिक शक्तिशाली, लचीला और ListView पर एक बड़ा वृद्धि है। मैं आपको इसमें एक विस्तृत अंतर्दृष्टि देने की कोशिश करूंगा।

लाभ

1) ViewHolder पैटर्न

एक ListView में, यह ViewHolder पैटर्न का उपयोग करने के लिए सिफारिश की गई थी लेकिन यह एक मजबूरी कभी नहीं था। RecyclerView के मामले में, RecyclerView.ViewHolder कक्षा का उपयोग करना अनिवार्य है। यह ListView और RecyclerView के बीच प्रमुख अंतरों में से एक है।

यह रीसाइक्लिंग व्यू में चीजों को थोड़ा अधिक जटिल बनाता है लेकिन ListView में हमें जिन समस्याओं का सामना करना पड़ता है, वे कुशलता से हल हो जाते हैं।

2) LayoutManager

यह RecyclerView के लिए लाया एक और बड़े पैमाने पर वृद्धि है। ListView में, उपलब्ध एकमात्र प्रकार का दृश्य लंबवत ListView है। क्षैतिज ListView को लागू करने का कोई आधिकारिक तरीका नहीं है।

अब एक RecyclerView का उपयोग कर, हम कर सकते हैं एक

i) LinearLayoutManager - जो दोनों ऊर्ध्वाधर और क्षैतिज सूचियों का समर्थन करता है,

ii) StaggeredLayoutManager - जो कंपित सूचियों की तरह Pinterest का समर्थन करता है,

iii) GridLayoutManager - जो गैलरी ऐप्स में दिखाई देने वाले ग्रिड प्रदर्शित करने का समर्थन करता है।

और सबसे अच्छी बात यह है कि हम इन सभी गतिशील रूप से हम चाहते हैं जैसे हम चाहते हैं।

3) मद एनिमेटर

listviews अच्छा एनिमेशन के समर्थन की कमी है, लेकिन RecyclerView इसे करने के लिए एक पूरी नई आयाम लाता है। RecyclerView.ItemAnimator कक्षा का उपयोग करके, दृश्यों को एनिमेट करना इतना आसान और सहज हो जाता है।

4) मद सजावट

listviews के मामले में, गतिशील रूप से सीमाओं या विभाजक जोड़ने जैसी मदों सजाने आसान नहीं था। लेकिन रीसाइक्लर व्यू के मामले में, RecyclerView.ItemDecorator कक्षा डेवलपर्स को भारी नियंत्रण देती है लेकिन चीजों को थोड़ा अधिक समय लेने और जटिल बनाती है।एक ListView पर

5) OnItemTouchListener

को बाधित करना आइटम क्लिक करता है, सरल था इसके AdapterView.OnItemClickListener इंटरफ़ेस करने के लिए धन्यवाद। लेकिन RecyclerView RecyclerView.OnItemTouchListener द्वारा अपने डेवलपर्स को अधिक शक्ति और नियंत्रण प्रदान करता है लेकिन यह डेवलपर के लिए चीजों को थोड़ा जटिल बनाता है।

नुकसान

i) यह तरीका एक सूची दृश्य से अधिक जटिल है।

ii) शुरुआती के लिए रीसाइक्लिंग व्यू को पूरी तरह से समझने में काफी समय लग सकता है।

iii) यह अनावश्यक रूप से आपके कोडिंग जीवन को कठिन बना सकता है।

iv) आप देखेंगे इसके साथ और अधिक समय बिताने के लिए की तुलना में आप कभी एक ListView

+0

अच्छा स्पष्टीकरण दोस्त :) +1 –

+0

अच्छा स्पष्टीकरण ... शीर्ष दृश्य दृश्य आइटम की स्थिति स्थिति का पता लगाने के दौरान मुझे समस्या का सामना करना पड़ रहा है, जैसे कि व्हाट्सएप की तरह स्क्रॉल करते समय मैं उस आइटम की तारीख प्रदर्शित कर सकता हूं ... इसके बारे में कोई सुझाव मुझे बहुत मदद करेगा ... यह केक का एक टुकड़ा था अगर मैं सूचीदृश्य का उपयोग करता ... धन्यवाद अग्रिम धन्यवाद ... – srv242

+0

अगर मैं आपकी समस्या को सही ढंग से समझता हूं, तो यह कुछ ऐसा है जिसे आप देखना चाहते हैं, https://gist.github.com/mipreamble/b6d4b3d65b0b4775a2 2e # फ़ाइल recyclerviewpositionhelper-जावा –

संबंधित मुद्दे