public override bool OnTouchEvent(MotionEvent ev)
{
+ // If the touch is caught by the horizontal scrollview, forward it to the parent so custom renderers can be notified of the touch.
+ var verticalScrollViewerRenderer = Parent as ScrollViewRenderer;
+ if (verticalScrollViewerRenderer != null)
+ {
+ verticalScrollViewerRenderer.ShouldSkipOnTouch = true;
+ verticalScrollViewerRenderer.OnTouchEvent(ev);
+ }
+
// The nested ScrollViews will allow us to scroll EITHER vertically OR horizontally in a single gesture.
// This will allow us to also scroll diagonally.
// We'll fall through to the base event so we still get the fling from the ScrollViews.
ScrollBy((int)dX, 0);
}
}
+
return base.OnTouchEvent(ev);
}
ScrollViewContainer _container;
HorizontalScrollView _hScrollView;
bool _isAttached;
-
+ internal bool ShouldSkipOnTouch;
bool _isBidirectional;
ScrollView _view;
public override bool OnTouchEvent(MotionEvent ev)
{
+ if (ShouldSkipOnTouch)
+ {
+ ShouldSkipOnTouch = false;
+ return false;
+ }
+
// The nested ScrollViews will allow us to scroll EITHER vertically OR horizontally in a single gesture.
// This will allow us to also scroll diagonally.
// We'll fall through to the base event so we still get the fling from the ScrollViews.