5

I have a RecyclerView inside a fragment. I need to be notified of scroll changes, so I added a callback to the ScrollChange event (which corresponds to the SetOnScrollChangeListener in classical Android API):

private void RecyclerViewScrollChange(object sender, View.ScrollChangeEventArgs e)
{
    int deltaY = e.ScrollY - e.OldScrollY;
}

The problem is that deltaY is always zero, because both ScrollY and OldScrollY are always zero. I am using vertical linear layout in the recycler view's layout manager, so the vertical dimension ought to be updated. What can cause this problem?

Ugur
  • 148
  • 4
  • 11

2 Answers2

0

View.SetOnScrollChangeListener() was added in API level 23 which you can see here in the docs: View.SetOnScrollChangeListener()

If your app should support versions before API level 23, a workaround is by adding a ScrollChangeListener to the RecyclerView's `ViewTreeObserver' using AddOnScrollChangedListener() as followed:

_recyclerView.ViewTreeObserver.AddOnScrollChangedListener(param);

Or adding a callback to the ViewTreeObserver's ScrollChanged event

Raimo
  • 1,494
  • 1
  • 10
  • 19
-1

scrolling to Y position is getting using

recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
                super.onScrollStateChanged(recyclerView, newState);
            }

            @Override
            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
                super.onScrolled(recyclerView, dx, dy);
                Log.v("onScrolled", "dx:" + dx + " dy:" + dy);

             }
        });
Nik
  • 1,991
  • 2
  • 13
  • 30
  • I see that Xamarin's `ScrollChange` event wraps `setOnScrollChangeListener`, and there is no event wrapping `addOnScrollListener`. I switched to `addOnScrollListener` method and it works fine now. – Ugur Mar 12 '18 at 08:05
  • 8
    The question is asking `scrollY`, this answer answering `dy`?? why this is the accepted answer? – saiday Mar 22 '19 at 10:03