मैं as seen in this tutorial के अंदर विषम दृश्यों के साथ RecyclerView
का उपयोग कर रहा हूं।मैं चाहता हूं कि मेरा रीसाइक्लर कुछ आइटम रीसायकल न करें
मेरे पास कुछ रीसाइक्लिंग व्यू के अंदर कुछ आइटम हैं जो रीसाइक्लिंग व्यू हैं। कल्पना करने के लिए बहुत मुश्किल है? मान लीजिए कि मैं Play Store के लेआउट की प्रतिलिपि बनाना चाहता हूं: लंबवत रैखिक लेआउट के साथ एक बड़ा पुनर्चक्रण दृश्य और कई तत्वों से भरा: एकल ऐप्स और ऐप्स का कैरोसेल।
यदि आइटम जोड़ने के लिए एक ऐप के लिए लेआउट है तो आईडी 1 का उपयोग किया जाएगा और मैं एक आइटम के लिए लेआउट जोड़ूंगा। अन्यथा, अगर मुझे कैरोसेल जोड़ने की ज़रूरत है तो मैं मुख्य पुनर्चक्रण दृश्य में एक तत्व जोड़ूंगा: एक अन्य पुनर्चक्रण अपने स्वयं के एडाप्टर के साथ देखें।
यह बहुत अच्छी तरह से काम करता है। सिवाय जब आप मुख्य RecyclerView स्क्रॉल करते हैं। क्यूं कर? क्योंकि onBindViewHolder()
विधि में और दृश्यमान नहीं होने पर कुछ विचार नष्ट हो रहे हैं। यहाँ क्यों? चूंकि मुख्य RecyclerView का एडाप्टर स्थिति X के लिए गुजर रहा है और फिर OnBindViewHolder()
पर कॉल करता है। उत्तरार्द्ध तब अपने नए एडाप्टर के साथ एक नया पुनर्चक्रण दृश्य बनाता है और इसे सौंपता है। मैं उन विचारों को सिर्फ इसलिए रखना चाहता हूं क्योंकि वे हर बार फिर से भरने के लिए भारी होते हैं।
क्या यह संभव है? यदि हां, तो क्या आप मुझे बता सकते हैं कि कैसे?
यह मेरे लिए अच्छा काम करता है! –
'int viewType' पैरामीटर के लिए पास होने वाला डिफ़ॉल्ट मान क्या है ?? मुझे इसके लिए कोई दस्तावेज नहीं मिला? – Sanoop
@ सानोप जब तक आप 'getItemViewType' को ओवरराइड नहीं करते हैं, तो डिफ़ॉल्ट दृश्य टाइप '0' है (देखें [यह] (https://android.googlesource.com/platform/frameworks/support/+/refs/heads/master/v7/recyclerview /src/android/support/v7/widget/RecyclerView.java#5818)) – Sourabh