स्क्रॉलिंग को अक्षम करने का एक और अधिक सरल तरीका है (तकनीकी रूप से यह एक स्क्रॉलिंग इवेंट का अवरोधन है और जब कोई शर्त पूरी होती है तो इसे समाप्त कर देता है), बस मानक कार्यक्षमता का उपयोग करके। 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बजाय उपयोग करने का प्रयास करें ।OnClickListeneraccidental
RecyclerViewयदि आप स्क्रॉल नहीं करना चाहते हैं, तो उपयोग करने का क्या मतलब है ?