seb seb - 1 year ago 1508
Java Question

How to get the Scrollposition in the Recyclerview/Layoutmanager?

How to get the scrollposition in

or the

I can measure the scrollposition by adding an
, but when the Orientation changes
is 0.

mRecyclerView.setOnScrollListener(new RecyclerView.OnScrollListener() {
int scrollDy = 0;
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);

public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
scrollDy += dy;

Answer Source

You cannot get it because it does not really exist. LayoutManager only knows about the views on screen, it does not know the views before, what their size is etc.

The number you can count using the scroll listener is not reliable because if data changes, RecyclerView will do a fresh layout calculation and will not try to re-calculate a real offset (you'll receive an onScroll(0, 0) if views moved).

RecyclerView estimates this value for scrollbars, you can use the same methods from View class.




These methods have their vertical counterparts as well.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download