protected virtual void ExecuteScroll(int targetPosition, ScrollToRequestedEventArgs eventArgs) { if (eventArgs.Position == ScrollToPosition.MakeVisible) { if (eventArgs.ShouldAnimate) { RecyclerView.SmoothScrollToPosition(targetPosition); } else { RecyclerView.ScrollToPosition(targetPosition); } return; } if (eventArgs.ShouldAnimate) { _scroller.SnapPosition = eventArgs.Position; _scroller.TargetPosition = targetPosition; LayoutManager.StartSmoothScroll(_scroller); } else { LayoutManager.ScrollToPositionWithOffset(targetPosition, CalculateScrollOffset(eventArgs.Position)); } }