इस सवाल को समझने के लिए first read how this method works.सहायता
मैं एक खींचें लागू करता है और ड्रॉप ListView कोशिश कर रहा हूँ, यह ठीक हो रहा है, लेकिन एक सड़क ब्लॉक में चलाने की है। तो मुझे सबकुछ संभालना नहीं है, मैं हस्तक्षेप कर रहा हूं (लेकिन झूठी वापसी) MotionEvents सूची दृश्य में भेजा गया है, इसे स्क्रॉलिंग और सामान को संभालने की अनुमति देता है। जब मैं किसी आइटम को खींचना शुरू करना चाहता हूं, तो मैं सत्य वापस लौटाता हूं और सभी खींचने वाली सामग्री को संभाला करता हूं। एक चीज को छोड़कर सब कुछ ठीक काम कर रहा है। ड्रैग (ड्रैग और ड्रॉप) तब शुरू होता है जब यह निर्धारित किया जाता है कि एक घटना के रूप में एक लंबी प्रेस (InterceptTouchEvent में)। मुझे उस छवि के लिए मिलता है जिसे मैं इस तरह खींचता हूं। आइटमपोशन उस आइटम का सूचकांक है जिसे चुना गया था।
(छोड़ते हुए अप्रासंगिक भागों)
...
View dragItem = mListView.getChildAt(itemPosition);
dragItem.setDrawingCacheEnabled(true);
Bitmap bitmap = Bitmap.createBitmap(dragItem.getDrawingCache());
mDragImage = new ImageView(mContext);
mDragImage.setImageBitmap(bitmap);
...
समस्या है, mDragImage इस तरह एक ठोस काला है।
लेकिन, यदि मैं ListView को कुछ भी संभाल नहीं देता हूं। जैसा कि, मैं ACTION_DOWN पर ड्रैग शुरू करता हूं और ACTION_UP पर रोकता हूं, mDragImage दिखने की उम्मीद है (लेकिन मैं स्पष्ट रूप से स्क्रॉलिंग क्षमताओं को खो देता हूं)।
के बाद से खींचें एक लंबे प्रेस के साथ शुरू होता है, ListView से पहले देर तक दबाए रखने होता है काम करने के लिए अवसर दिया जाता है। यह मेरा अनुमान है कि यह क्यों हो रहा है। जब कोई आइटम दबाया जाता है, तो इसे ListView द्वारा हाइलाइट किया जाता है। ऐसा करने में कहीं, यह बिटमैप के साथ गड़बड़ कर रहा है। तो जब मैं इसे पाने के लिए जाता हूं, यह एक अजीब स्थिति (सभी काला) में है।
मुझे इसे ठीक करने के लिए दो विकल्प दिखाई देते हैं, जिनमें से कोई भी मुझे नहीं पता कि कैसे करना है।
स्क्रैच से एक छवि बनाएं।
खुद को हाइलाइट करना (अगर यह समस्या है) को संभालें।
विकल्प दो मेरे लिए एक बेहतर प्रतीत होता है, सिवाय इसके कि मैंने प्रलेखन और स्रोत कोड को देखा और यह पता नहीं लगा कि ऐसा कैसे किया जाए। यहां कुछ चीजें हैं जिन्हें मैंने किया/कोशिश की है।
मैं एक खाली विधि (प्रकाश डाला अभी भी होता है) के साथ setOnItemClickListener(...) और setOnItemSelectedListener (...) की स्थापना की। (इससे पहले कि किसी को भी यह पता चलता है, बुला setOnClickListener परिणाम एक रनटाइम त्रुटि में।)
मैं भी एक नया आइटम (विकल्प 2 के लिए) बनाने के लिए ListView प्राप्त करने की कोशिश में देखा है, लेकिन एक तरह से नहीं मिल सका।
स्रोत कोड और दस्तावेज को देखकर 45ish मिनट बिताएं जहां यह हाइलाइटिंग हो रहा था (मुझे यह कभी नहीं मिला)।
इसकी सहायता करने में कोई भी सहायता की सराहना की जाएगी।
(EDIT1 स्टार्ट)
इसलिए मैं वास्तव में अगर onLongClickListener काम कर रहा है पता नहीं है, मैं सोच रहा था इससे पहले कि कोई त्रुटि की। मैं अभी इसे स्थापित करने की कोशिश कर रहा हूं, जब यह पता चलता है कि यह करता है तो अपडेट होगा।
(EDIT1 अंत) के बाद से पहले
अंतिम मिनट संपादित करें। मैंने अभी onLongClickListener का उपयोग करने का प्रयास किया है, और छवि अच्छी है। मैं अभी भी जानना चाहूंगा कि कोई और तरीका है या नहीं। काम करने के लिए मुझे लोंगक्लिक लिस्टनर पर कैसे उपयोग करना है बदसूरत है, लेकिन यह काम करता है। मैंने इसे समझने की कोशिश करने में इतना समय बिताया, जवाब का पता लगाना अच्छा लगेगा। मैं अभी भी हाइलाइट रंग को बदलने/संभालने में सक्षम होना चाहता हूं, डिफ़ॉल्ट नारंगी रंग सुंदर नहीं है। ओह और पोस्ट की लंबाई के बारे में खेद है। मैं इसे कम करने के तरीके के बारे में नहीं सोच सका, जबकि मुझे लगता था कि सारी जानकारी की आपूर्ति की जरूरत थी।