void AdjustVerticalScroll(int index, ScrollToPosition scrollToPosition) { _pendingScrollAdjustment = null; var viewRect = GetViewRect(index); if (viewRect == null) { return; } var offset = 0; var rvRect = new ARect(); _recyclerView.GetGlobalVisibleRect(rvRect); if (scrollToPosition == ScrollToPosition.Center) { offset = viewRect.CenterY() - rvRect.CenterY(); } else if (scrollToPosition == ScrollToPosition.End) { offset = viewRect.Bottom - rvRect.Bottom; } _recyclerView.ScrollBy(0, offset); }