Exemple #1
0
        bool IOnTouchListener.OnTouch(AView v, MotionEvent e)
        {
            var handled = false;

            if (_pinchGestureHandler.IsPinchSupported)
            {
                if (!_scaleDetector.IsValueCreated)
                {
                    ScaleGestureDetectorCompat.SetQuickScaleEnabled(_scaleDetector.Value, true);
                }
                handled = _scaleDetector.Value.OnTouchEvent(e);
            }

            _gestureListener?.OnTouchEvent(e);

            return(_gestureDetector.Value.OnTouchEvent(e) || handled);
        }
Exemple #2
0
        bool AView.IOnTouchListener.OnTouch(AView v, MotionEvent e)
        {
            if (!Element.IsEnabled)
            {
                return(true);
            }

            if (Element.InputTransparent)
            {
                return(false);
            }

            var handled = false;

            if (_pinchGestureHandler.IsPinchSupported)
            {
                if (!_scaleDetector.IsValueCreated)
                {
                    ScaleGestureDetectorCompat.SetQuickScaleEnabled(_scaleDetector.Value, true);
                }
                handled = _scaleDetector.Value.OnTouchEvent(e);
            }

            _gestureListener?.OnTouchEvent(e);

            if (_gestureDetector.IsValueCreated && _gestureDetector.Value.Handle == IntPtr.Zero)
            {
                // This gesture detector has already been disposed, probably because it's on a cell which is going away
                return(handled);
            }

            // It's very important that the gesture detection happen first here
            // if we check handled first, we might short-circuit and never check for tap/pan
            handled = _gestureDetector.Value.OnTouchEvent(e) || handled;

            v.EnsureLongClickCancellation(e, handled, Element);

            return(handled);
        }
Exemple #3
0
        bool IOnTouchListener.OnTouch(AView v, MotionEvent e)
        {
            var handled = false;

            if (_pinchGestureHandler.IsPinchSupported)
            {
                if (!_scaleDetector.IsValueCreated)
                {
                    ScaleGestureDetectorCompat.SetQuickScaleEnabled(_scaleDetector.Value, true);
                }
                handled = _scaleDetector.Value.OnTouchEvent(e);
            }

            _gestureListener?.OnTouchEvent(e);

            if (_gestureDetector.IsValueCreated && _gestureDetector.Value.Handle == IntPtr.Zero)
            {
                // This gesture detector has already been disposed, probably because it's on a cell which is going away
                return(handled);
            }

            return(_gestureDetector.Value.OnTouchEvent(e) || handled);
        }