स्क्रॉलिंग को अक्षम करने का एक और अधिक सरल तरीका है (तकनीकी रूप से यह एक स्क्रॉलिंग इवेंट का अवरोधन है और जब कोई शर्त पूरी होती है तो इसे समाप्त कर देता है), बस मानक कार्यक्षमता का उपयोग करके। RecyclerView
विधि को बुलाया गया है addOnScrollListener(OnScrollListener listener)
, और इसका उपयोग करके आप इसे स्क्रॉल करने से रोक सकते हैं, बस:
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
if (viewModel.isItemSelected) {
recyclerView.stopScroll();
}
}
});
मामले का उपयोग करें:
मान लें कि आप स्क्रॉल करना चाहते हैं जब आप किसी एक आइटम पर क्लिक करते हैं, RecyclerView
तो आप इसके साथ कुछ क्रिया कर सकते थे, बिना किसी अन्य आइटम पर गलती से स्क्रॉल किए बिना, और जब आप इसके साथ काम करते हैं, तो बस पर क्लिक करें स्क्रॉल करने में सक्षम करने के लिए आइटम फिर से। उसके लिए, आप अनुलग्न करना चाहते हैं OnClickListener
के भीतर हर आइटम के लिए RecyclerView
है, इसलिए जब आप किसी आइटम पर क्लिक करें, यह टॉगल होगा isItemSelected
से false
करने के लिए true
। इस तरह जब आप स्क्रॉल करने की कोशिश RecyclerView
करेंगे , तो स्वचालित रूप से कॉल विधि होगी onScrollStateChanged
और isItemSelected
सेट होने के बाद true
, यह तुरंत, पहले बंद हो जाएगाRecyclerView
कि मौका मिला, अच्छी तरह से ... स्क्रॉल करने के लिए।
नोट: बेहतर प्रयोज्य के लिए, क्लिकों को रोकने के GestureListener
बजाय उपयोग करने का प्रयास करें ।OnClickListener
accidental
RecyclerView
यदि आप स्क्रॉल नहीं करना चाहते हैं, तो उपयोग करने का क्या मतलब है ?