2016-02-11 10 views
11

मेरे पास एक वर्किंग आइटम टचहेल्पर के साथ एक रीसाइक्लिंग व्यू है। सबकुछ बढ़िया काम करता है, लेकिन मुझे आश्चर्य है कि अगर कोई तरीका है तो मैं सूची को फिर से बनाये बिना RecyclerView से ItemTouchHelper को अलग कर सकता हूं?रीसाइक्लर से आइटम टचहेल्पर को हटाएं

ItemTouchHelper.Callback callback = new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) 
{ 
    ... 
}; 
mItemTouchHelper = new ItemTouchHelper(callback); 
mItemTouchHelper.attachToRecyclerView(mPasswordList); 

आदर्श रूप में, मैं में एक प्राथमिकता की जांच कहना गतिविधि इस RecyclerView में रहती है की onResume() और ItemTouchHelper पर आधारित है कि अलग करना चाहते हैं: मस्ती के लिए, इस कोड को मैं संलग्न करने के लिए उपयोग कर रहा हूँ है।

उत्तर

11

इसके लिए मेरी मूल प्रेरणा उपयोगकर्ता को सूची आइटमों पर स्वाइप क्रियाओं को अक्षम करने की क्षमता को अनुमति देने की अनुमति देने के लिए थी। मुझे लगता है कि ऐसा करने का तरीका RecyclerView से ItemTouchHelper को अलग करना था। अब मैं पाया ItemTouchHelper.SimpleCallback निम्न विधि ओवरराइड करने के लिए उपलब्ध है है

@Override 
public boolean isItemViewSwipeEnabled() 
{ 
    return mSwipable; 
} 

तो, यहाँ प्रभावी रूप से सही राज्य लौटने कड़ी चोट से निपटने के बंद हो जाती है। मुझे उम्मीद है कि यह भविष्य में किसी की मदद करेगा।

+3

आप मेरा दिन (..or मेरी सप्ताह) को बचाने के। धन्यवाद! –

+0

बिल्कुल सही समाधान! –

12

आप अशक्त करने के लिए recyclerview की स्थापना करके RecyclerView से ItemTouchHelper अलग कर सकते हैं:

mItemTouchHelper.attachToRecyclerView(null); 
+0

अच्छी चाल। लेकिन, इस सीमा से सावधान रहें: https://issuetracker.google.com/issues/37092256 Google का दावा है कि वे बग को ठीक करते हैं। हालांकि, इस टिप्पणी के लिखे जाने के समय, फिक्स अभी तक सार्वजनिक रूप से जारी नहीं किया गया है। –

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