10

के बाहर ड्रैग और ड्रॉप व्यू जो मैं प्राप्त करना चाहता हूं: मैं स्क्रोल करने योग्य लेआउट (RecyclerviewGridlayoutManager के साथ) में टाइल (दृश्य) के साथ एक दृश्य देखना चाहता हूं। RecyclerView के अंदर किसी आइटम को खींचना और छोड़ना आइकन की स्थिति समायोजित करना चाहिए और अन्य तत्वों के साथ स्वैप करना चाहिए। जब ड्रैग शुरू होता है, तो RecyclerView से ऊपर वाला आइकन ट्रैश आइकन में बदल जाएगा और इस आइकन पर दृश्य खींचकर इसे RecyclerView से हटा दिया जाएगा।रीसाइक्लर्विव

Initial stateStarting to drag View5dragging View5 to trash iconView5 was deleted and other Views moved along

मैं इस excellent tutorial कोशिश की, लेकिन मैं एक तरह से ItemTouchHelper.Callback रूप Recyclerview के बाहर खींच संभाल करने के लिए कैसे संभव लक्ष्य के रूप में केवल Recycler.ViewHolder तत्वों का उपयोग करता नहीं मिला।

विधि interpolateOutOfBoundsScroll() प्रतिक्रिया देता है यदि दृश्य सीमाओं से बाहर निकलता है, लेकिन केवल कुल आकार को ऑफ़स्क्रीन देता है, लेकिन कोई निर्देशांक नहीं देता है। साथ ही, Recyclerview के दृश्य को खींचने का प्रयास हमेशा दृश्य को काटने में परिणाम देता है जहां यह Recyclerview की सीमाओं को पार करता है।

क्या किसी को पता है कि मैं इस प्रभाव को कैसे प्राप्त कर सकता हूं?

उत्तर

4

आप RecyclerView सीमाओं से बंधे हैं। आप कई विकल्प हैं:

  1. match_parent को RecyclerView के लेआउट ऊंचाई करें और अपने ऊपरी दृश्य के शीर्ष पर होना (यह एक Toolbar है?) और एक ही आकार के एक चिपचिपा हैडर जोड़ सकते हैं और एक खाली है पारदर्शी लेआउट। इस तरह आप थर्म खींच सकते हैं और वहां पर चल रहे आइटम को देख सकते हैं।

  2. किसी आइटम को कचरे में खींचने के बजाय आइकन जो एक वैध ऊपरी-दाएं आइटम के करीब स्थित हो सकता है, आइटम का चयन करने के लिए एक लंबा क्लिक करें (और चेक मार्क या लाल मुखौटा जैसे संकेत लागू करें)

    android:clipChildren="false" 
    

    संपादित करें: और कचरा दिखाई देते हैं और क्लिक uppon हटाना (और शायद अनुमति देते हैं बहु आइटम हटाना) कर सकते हैं

+0

आपके उत्तर के लिए धन्यवाद! ऊपरी दृश्य एक 'रिलेवेटिवआउट' है जिसमें कुछ 'टेक्स्टव्यू', 'छविदृश्य' और 'छविदृश्य' भी शामिल है जो ट्रैश बिन में बदलना चाहिए। मुझे चिपचिपा शीर्षलेख के साथ आपका विचार पसंद है। यदि कचरा 'छविदृश्य' चिपचिपा शीर्षलेख में एकमात्र तत्व है और इसे पूरी तरह से भरता नहीं है, तो क्या उपयोगकर्ताओं को ट्रैश 'छविदृश्य' पंक्ति के बगल में स्थितियों पर विचार खींचने से रोकने का कोई तरीका है? मैं इसे अभी कोशिश करूँगा – Eve

+0

@Eve बस उन्हें स्वैप न करें अगर गंतव्य स्थिति हेडर में है – gilgil28

+0

अभी भी इस पर विचार कर रही है, तो [Google] (http://developer.android) से क्लासिक दृष्टिकोण के साथ कोई तरीका नहीं है .com/गाइड/विषय/ui/drag-drop.html) एक ड्रैग छाया को परिभाषित करने के लिए, ताकि केवल छाया ही दृश्य को खींचा न जाए? – Eve

6

आप इस RecyclerView की मूल के लिए यह विशेषता केवल सेट द्वारा प्राप्त कर सकते हैं करते हैं: आदम काट्ज़ धन्यवाद, मुझे नहीं पता कि क्यों लेकिन कभी-कभी आप इसे कार्य करने के लिए इसे रीसाइक्लिंग व्यू में जोड़ना होगा:

android:clipToPadding="false" 
+1

वाह दोनों सिंक करना चाहिए, मुझे विश्वास नहीं है कि किसी और ने टिप्पणी नहीं की है। बस एक जोड़ा गया, एंड्रॉइड जोड़ने में मददगार है: clipChildren = "false" एंड्रॉइड: clipToPadding = "false" –

+0

क्या आप और समझा सकते हैं? क्या आपके पास नमूना कोड है? – Rajat

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