की getView() विधि का स्पष्टीकरण ArrayAdapter
की getView()
विधि की व्याख्या कर सकता है।एक ArrayAdapter
मैं डॉक्स पढ़ सकते हैं और यह तीन पैरामीटर है:
position
: एडाप्टर के डेटा के आइटम जिसकी दृश्य हम चाहते हैं निर्धारित भीतर आइटम की स्थिति।convertView
: यदि संभव हो तो पुन: उपयोग करने का पुराना दृश्य। नोट: आपको यह जांचना चाहिए कि यह दृश्य उपयोग करने से पहले गैर-शून्य और उचित प्रकार का है। यदि सही डेटा प्रदर्शित करने के लिए इस दृश्य को परिवर्तित करना संभव नहीं है, तो यह विधि एक नया दृश्य बना सकती है।
विषम सूचियां उनके दृश्य प्रकारों को निर्दिष्ट कर सकती हैं, ताकि यह दृश्य हमेशा सही प्रकार का हो (getViewTypeCount() देखें और getItemViewType (int) प्राप्त करें)।parent
: माता-पिता है, यह दृश्य अंततः
से जोड़ दी जाएगी मैं position
पैरामीटर समझा। जैसे उन्होंने कहा, यह आइटम की स्थिति का अर्थ है, जिसे देखने का अनुरोध किया गया है।
convertView
कहां से आता है। मैंने कई उदाहरण देखे हैं जहां वे जांचते हैं कि convertView
शून्य है। यदि शून्य है, तो वे पंक्ति लेआउट का एक नया उदाहरण बढ़ाते हैं, इसे पॉप्युलेट करते हैं और इसे वापस करते हैं। मुझे लगता है कि मैंने अपने सिर को भी उसके चारों ओर प्राप्त कर लिया है लेकिन एक चीज अभी भी मुझे परेशान करती है। convertView
पैरामीटर के माध्यम से पारित किया गया लेआउट क्या है। क्या the resource
parameter that is passed in when initialising the ArrayAdapter
है? getView()
द्वारा लौटाए गए अंतिम लेआउट की कैश की गई प्रति है?
और आखिरकार। parent
पैरामीटर क्या करता है। मैंने इसका उपयोग करने वाले बहुत से उदाहरण नहीं देखे हैं। उनमें से ज्यादातर बस पंक्ति लेआउट का पुन: उपयोग/फुलाते हैं और इसे वापस करते हैं। क्योंकि मैं अपने ListView
में एक पर क्लिक एनीमेशन है
(मैं पूछ रहा हूँ। विशेष रूप से this one that aims to replicate Spotify's dropdown quick action menu। मेरे एनीमेशन एक छोटे से सुस्त हो गया है। थोड़ी देर के लिए इस समस्या का निदान करने के बाद, मुझे एहसास हुआ है कि इस की वजह से किया गया है तथ्य यह है कि मेरी getView()
विधि को पूरा करने में थोड़ा समय लगता है क्योंकि मैं प्रत्येक पुनरावृत्ति में एक ताजा पंक्ति लेआउट बढ़ा रहा हूं। किसी ने ViewHolder
में पंक्ति लेआउट को कैशिंग करने का सुझाव दिया है जबकि अन्य उदाहरण convertView
पैरामीटर का उपयोग करने के लिए इंगित करते हैं यानी केवल पंक्ति लेआउट को बढ़ाते हैं यदि convertView
शून्य है।)
यह वास्तव में एक अच्छा जवाब है! – Tarik
सबसे अच्छा जवाब tnx –