স্রেফ স্ট্যান্ডার্ড কার্যকারিতা ব্যবহার করে স্ক্রোলিং অক্ষম করার আরও সহজ সরল উপায় রয়েছে (প্রযুক্তিগতভাবে এটি কোনও স্ক্রোলিং ইভেন্টের চেয়ে বেশি বিরতি এবং কোনও শর্ত পূরণ হওয়ার পরে এটি শেষ করা), কেবলমাত্র স্ট্যান্ডার্ড কার্যকারিতা ব্যবহার করে। 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যদি স্ক্রলিং না চান তবে ব্যবহার করার কী লাভ ?