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