Да, есть два способа сделать это.
Один использует onBindViewHolder , в onBindViewHolder
добавить
Log.d("onBindViewHolder", "position =>"+position);
count++; //for the position
но помните, что подсчитывайте вызовы по нескольку раз для каждой новости, и вы должны считать только по первому вызову.
Другой способ - использовать layoutManagers
, т.е. LinearLayoutManager
или GridLayoutManager
, делая это
int firstVisiblePosition = layoutManager.findFirstVisibleItemPosition();
int lastVisiblePosition = layoutManager.findLastVisibleItemPosition();
ИЛИ для scrollListener
вы можете сделать это
recycler.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
//you can use other methods as per your requirements
Toast.makeText(mContext, "Scrolled to"+layoutManager.findLastCompletelyVisibleItemPosition(), Toast.LENGTH_SHORT).show();
})
Надеюсь, это поможет вам.