private void OnPanGestureDetected(object source, PanGestureDetector.DetectedEventArgs e) { if (e.PanGesture.State == Gesture.StateType.Started) { mLayout.StopScroll(true); } else if (e.PanGesture.State == Gesture.StateType.Continuing) { if (mLayout.CanScrollVertically()) { mLayout.ScrollVerticallyBy(e.PanGesture.Displacement.Y, mRecycler, true); } else if (mLayout.CanScrollHorizontally()) { mLayout.ScrollHorizontallyBy(e.PanGesture.Displacement.X, mRecycler, true); } ShowScrollBar(); } else if (e.PanGesture.State == Gesture.StateType.Finished) { if (mLayout.CanScrollVertically()) { mLayout.ScrollVerticallyBy(e.PanGesture.Velocity.Y * 600, mRecycler, false); } else if (mLayout.CanScrollHorizontally()) { mLayout.ScrollHorizontallyBy(e.PanGesture.Velocity.X * 600, mRecycler, false); } ShowScrollBar(1200, true); } }
public void SetLayoutManager(FlexibleViewLayoutManager layoutManager) { if (null == layoutManager) { return; } mLayout = layoutManager; mLayout.SetRecyclerView(this); if (mLayout.CanScrollHorizontally()) { mPanGestureDetector.AddDirection(PanGestureDetector.DirectionHorizontal); } else if (mLayout.CanScrollVertically()) { mPanGestureDetector.AddDirection(PanGestureDetector.DirectionVertical); } }