void Gesture_OnAction (BaseGestureRecognizer recgonizer, GestureRecognizerState state) { var panGesture = recgonizer as PanGestureRecognizer; Point translation = panGesture.GetTranslationInView (MainLayout); Point velocity = panGesture.GetVelocityInView (MainLayout); panGesture.SetTranslationInView (new Point (0, 0), MainLayout); Debug.WriteLine ("GESTURE STATE " + state + " trans " + translation); switch (panGesture.State) { case GestureRecognizerState.Began: break; case GestureRecognizerState.Changed: if (recgonizer.View == ForegroundContent) { _contentBounds.X += translation.X; _contentBounds.Y = 0; ForegroundContent.Layout (_contentBounds); } break; case GestureRecognizerState.Cancelled: case GestureRecognizerState.Ended: case GestureRecognizerState.Failed: _contentBounds.X = (_contentBounds.X > -(MainLayout.Width / 4)) ? 0 : -(MainLayout.Width / 2); ForegroundContent.LayoutTo (_contentBounds); break; case GestureRecognizerState.Possible: default: break; } }
void OnAction(BaseGestureRecognizer recognizer, GestureRecognizerState state) { var panRecognizer = recognizer as PanGestureRecognizer; var view = recognizer.View; if (state == GestureRecognizerState.Began) { _startBounds = recognizer.View.Bounds; Debug.WriteLine ("START " + _startBounds); } if (state == GestureRecognizerState.Changed) { var message = "PAN " + recognizer + "\n"; message += "POS: " + recognizer.LocationInView (view.ParentView); var translation = panRecognizer.GetTranslationInView (view.ParentView); // message += "touches: " + recognizer.NumberOfTouches + ", velocity: " + velocity; message += ", translation: " + translation; var bounds = new Rectangle (view.X + translation.X, view.Y + translation.Y, view.Width, view.Height); message += ", vb: " + bounds; _startBounds.X += translation.X; _startBounds.Y += translation.Y; Debug.WriteLine ("MOVE " + bounds); Device.BeginInvokeOnMainThread (() => { Label2.Layout (bounds); }); OutputLabel.Text = message; } }
public void RemoveRecognizer(BaseGestureRecognizer recognizer) { NativeView.RemoveGestureRecognizer(NativeRecognizer); NativeRecognizer.ShouldRecognizeSimultaneously -= _NativeRecognizer_ShouldRecognizeSimultaneously; NativeRecognizer.ShouldBegin -= _NativeRecognizer_ShouldBegin; NativeRecognizer = null; recognizer.NativeGestureRecognizer = null; }
private static void ProcessGestureRecognizer(this View view, BaseGestureRecognizer recognizer) { if (recognizer.NativeGestureRecognizer == null) { recognizer.View = view; Factory.AddNativeGestureRecognizerToRecgonizer(recognizer); } }
private static void ProcessGestureRecognizer (this View view, BaseGestureRecognizer recognizer) { if (recognizer.NativeGestureRecognizer == null) { recognizer.View = view; Factory.AddNativeGestureRecognizerToRecgonizer (recognizer); } }
void OnAction (BaseGestureRecognizer recognizer, GestureRecognizerState state) { var swipeRecognizer = recognizer as SwipeGestureRecognizer; var view = recognizer.View; var message = "SWIPE " + recognizer + "\n"; message += "POS: " + recognizer.LocationInView (view.ParentView); message += "touches: " + recognizer.NumberOfTouches + ", direction: " + swipeRecognizer.Direction; OutputLabel.Text = message; }
void OnAction (BaseGestureRecognizer recognizer, GestureRecognizerState state) { var tapRecognizer = recognizer as TwinTechs.Gestures.LongPressGestureRecognizer; var view = recognizer.View; var message = recognizer + "\n"; message += "POS: " + recognizer.LocationInView (view); message += "PARENT POS: " + recognizer.LocationInView (view.ParentView); message += "touches: " + recognizer.NumberOfTouches;// + ", taps required: " + tapRecognizer.NumberOfTapsRequired; OutputLabel.Text = message; }
void OnAction (BaseGestureRecognizer recognizer, GestureRecognizerState state) { var tapRecognizer = recognizer as TwinTechs.Gestures.TapGestureRecognizer; var view = recognizer.View; var message = string.Format ("POS: {0} \n", recognizer.LocationInView (view).PrettyPrint ()); message += string.Format ("PARENT POS: {0} \n", recognizer.LocationInView (view.ParentView).PrettyPrint ()); message += string.Format ("PARENT.PARENT POS: {0} \n", recognizer.LocationInView (view.ParentView.ParentView).PrettyPrint ()); message += string.Format ("PAGE POS: {0} \n", recognizer.LocationInView (this).PrettyPrint ()); OutputLabel.Text = message; }
public void AddRecognizer(BaseGestureRecognizer recognizer) { Recognizer = recognizer; var renderer = Recognizer.View.GetRenderer (); if (renderer == null) { Recognizer.View.PropertyChanged += Recognizer_View_PropertyChanged; } else { InitializeNativeRecognizer (); } }
private static void ProcessGestureRecognizer(this View view, BaseGestureRecognizer recognizer) { if (recognizer.NativeGestureRecognizer == null) { recognizer.View = view; var nativeRecongizer = Factory.CreateNativeGestureRecognizer(recognizer); nativeRecongizer.AddRecognizer(recognizer); recognizer.NativeGestureRecognizer = nativeRecongizer; } }
private static void ProcessGestureRecognizer(this View view, BaseGestureRecognizer recognizer) { if (recognizer.NativeGestureRecognizer == null) { recognizer.View = view; var nativeRecongizer = Factory.CreateNativeGestureRecognizer (recognizer); nativeRecongizer.AddRecognizer (recognizer); recognizer.NativeGestureRecognizer = nativeRecongizer; } }
void OnAction (BaseGestureRecognizer recognizer, GestureRecognizerState state) { var panRecognizer = recognizer as PanGestureRecognizer; var view = recognizer.View; var message = "PAN " + recognizer + "\n"; message += "ParentPOS: " + recognizer.LocationInView (view.ParentView); message += "POS: " + recognizer.LocationInView (view); var translation = panRecognizer.GetTranslationInView (view.ParentView); var velocity = panRecognizer.GetVelocityInView (view.ParentView); message += ", translation: " + translation; var bounds = new Rectangle (view.X + velocity.X, view.Y + velocity.Y, view.Width, view.Height); message += ", vb: " + bounds; OutputLabel.Text = message; }
public void AddRecognizer(BaseGestureRecognizer recognizer) { Recognizer = recognizer; var renderer = Recognizer.View.GetRenderer(); if (renderer == null) { Recognizer.View.PropertyChanged += Recognizer_View_PropertyChanged; } else { InitializeNativeRecognizer(); } }
void Gesture_OnAction (BaseGestureRecognizer recgonizer, GestureRecognizerState state) { if (recgonizer.View != MediaItemsListView) { return; } var panGesture = recgonizer as PanGestureRecognizer; Point translation = panGesture.GetTranslationInView (MainLayout); Point velocity = panGesture.GetVelocityInView (MainLayout); panGesture.SetTranslationInView (new Point (0, 0), MainLayout); switch (panGesture.State) { case GestureRecognizerState.Began: // MediaItemsListView.IsEnabled = false; break; case GestureRecognizerState.Changed: var newY = _currentGridY + translation.Y; newY = Math.Max (0, newY); newY = Math.Min (400, newY); Debug.WriteLine ("newY {0} _currentGridY {1} _scrollPosition{2}", newY, _currentGridY, _scrollPosition); bool willMoveList = false; if (newY != _currentGridY) { willMoveList = _currentGridY > 0 || _scrollPosition <= 0 && newY > 0 && newY < Height - 100; if (willMoveList) { _currentGridY = newY; var bounds = MediaItemsListView.Bounds; bounds.Y = _currentGridY; MediaItemsListView.Layout (bounds); } MediaItemsListView.IsScrollEnabled = !willMoveList; } else { MediaItemsListView.IsScrollEnabled = true; Debug.WriteLine ("no move " + MediaItemsListView.IsScrollEnabled); } break; case GestureRecognizerState.Cancelled: case GestureRecognizerState.Ended: case GestureRecognizerState.Failed: MediaItemsListView.IsScrollEnabled = true; if (_currentGridY != 0 && _currentGridY != 400) { _currentGridY = _currentGridY > 200 ? 400 : 0; MediaItemsListView.LayoutTo (new Rectangle (0, _currentGridY, Width, Height)); } break; default: break; } }
public void RemoveRecognizer(BaseGestureRecognizer recognizer) { if (recognizer.NativeGestureRecognizer != null) { var coordinator = recognizer.NativeGestureCoordinator as NativeGestureCoordinator; if (coordinator == null) { throw new InvalidOperationException("the recognizer's native gesture coordinator is null, or an invalid type"); } coordinator.RemoveRecognizer((BaseNativeGestureRecognizer)recognizer.NativeGestureRecognizer); if (!coordinator.HasRecognizers) { coordinator.Destroy(); recognizer.NativeGestureCoordinator = null; } } }
public void RemoveRecognizer(BaseGestureRecognizer recognizer) { if (IsGestureInitialized) { Listener = GetMultiCastListener(); if (Listener == null) { throw new IllegalStateException("the view's multi caster was removed before removing a listener"); } Listener.RemoveListener(this); if (!Listener.HasListeners) { NativeView.SetOnTouchListener(null); } NativeView.SetOnTouchListener(null); NativeGestureDetector = null; IsGestureInitialized = false; } }
void Gesture_OnAction (BaseGestureRecognizer recgonizer, GestureRecognizerState state) { string message = ""; var panGesture = recgonizer as PanGestureRecognizer; Point translation = panGesture.GetTranslationInView (MainLayout); Point velocity = panGesture.GetVelocityInView (MainLayout); panGesture.SetTranslationInView (new Point (0, 0), MainLayout); // MyLabel.Text = "PAN " + recognizer.LocationInView (view.ParentView); // Debug.WriteLine ("PAN " + panGesture); // Debug.WriteLine ("location " + panGesture.LocationInView (this)); switch (panGesture.State) { case GestureRecognizerState.Began: message += "BEGAN "; message += "POS: " + recgonizer.LocationInView (MainLayout); break; case GestureRecognizerState.Changed: message += "CHANGED "; message += ", translation: " + translation; message += ", velocity: " + velocity; message += "POS: \n" + recgonizer.LocationInView (panGesture.View).PrettyPrint (); message += "PARENT POS: \n" + recgonizer.LocationInView (MainLayout).PrettyPrint (); if (recgonizer.View == Box) { message += ", MOVING VIEW"; _boxBounds.X += translation.X; _boxBounds.Y += translation.Y; Box.Layout (_boxBounds); } break; case GestureRecognizerState.Cancelled: case GestureRecognizerState.Ended: case GestureRecognizerState.Failed: message += "FINISHED "; break; case GestureRecognizerState.Possible: default: break; } OutputLabel.Text = message; }
void Gesture_OnAction (BaseGestureRecognizer recgonizer, GestureRecognizerState state) { if (recgonizer.View != _contentPage.VideoPlayerView) { return; } var panGesture = recgonizer as PanGestureRecognizer; Point translation = panGesture.GetTranslationInView (MainLayout); Point velocity = panGesture.GetVelocityInView (MainLayout); panGesture.SetTranslationInView (new Point (0, 0), MainLayout); switch (panGesture.State) { case GestureRecognizerState.Began: break; case GestureRecognizerState.Changed: var newY = _contentBounds.Y + translation.Y; if (newY > 0 && newY < Height - _contentPage.MinimumHeightRequest) { var minHeight = _contentPage.MinimumHeightRequest; var minWidth = _contentPage.MinimumWidthRequest; _contentBounds.Y = newY; var complete = Math.Min (1, (Height - (_contentBounds.Y + minHeight)) / Height); // Debug.WriteLine ("complete {0} newY {1} h{2}", complete, newY, Height); var inverseCompletion = 1 - complete; _contentBounds.X = (Width - minWidth) * inverseCompletion; _contentBounds.Width = (minWidth) + ((Width - minWidth) * complete); _contentBounds.Height = Math.Max (minHeight, (Height + minHeight) * complete); PageContainer.Layout (_contentBounds); } break; case GestureRecognizerState.Cancelled: case GestureRecognizerState.Ended: case GestureRecognizerState.Failed: var isShowing = _contentBounds.Y < 200; ToggleShowing (isShowing, true); break; default: break; } }
bool OnGestureShouldBegin (BaseGestureRecognizer gestureRecognizer) { var shouldBegin = _currentGridY > 0 || _scrollPosition < 10; Debug.WriteLine (">>>>>_currentGridY {0} _scrollPosition {1} shouldBegin{2}", _currentGridY, _scrollPosition, shouldBegin); return shouldBegin; }
public void RemoveRecognizer(BaseGestureRecognizer recognizer) { NativeView.RemoveGestureRecognizer(NativeRecognizer); NativeRecognizer = null; recognizer.NativeGestureRecognizer = null; }
bool OnShouldBegin (BaseGestureRecognizer recognizer) { var panGestureRecognizer = recognizer as PanGestureRecognizer; var translation = panGestureRecognizer.GetTranslationInView (recognizer.View.ParentView); var moveX = Math.Abs (translation.X); var moveY = Math.Abs (translation.Y); return moveX > moveY; }
public void RemoveRecognizer(BaseGestureRecognizer recognizer) { if (IsGestureInitialized) { Listener = GetMultiCastListener (); if (Listener == null) { throw new IllegalStateException ("the view's multi caster was removed before removing a listener"); } Listener.RemoveListener (this); if (!Listener.HasListeners) { NativeView.SetOnTouchListener (null); } NativeView.SetOnTouchListener (null); NativeGestureDetector = null; IsGestureInitialized = false; } }
/// <summary> /// Removes the gesture recognizer. This is a temporary method while Xamarin don't expose any api /// for us to hook into their gesture recognizers mechanism. /// </summary> /// <param name="view">View.</param> /// <param name="recognizer">Recognizer.</param> public static void RemoveGestureRecognizer(this View view, BaseGestureRecognizer recognizer) { // recognizer.NativeGestureRecognizer?.RemoveRecognizer (recognizer); }
public void RemoveRecognizer(BaseGestureRecognizer recognizer) { var nativeRecognizer = recognizer.NativeGestureRecognizer as IBaseNativeGestureRecognizerImpl; nativeRecognizer.RemoveRecognizer(recognizer); }
void Gesture_OnAction (BaseGestureRecognizer recgonizer, GestureRecognizerState state) { var panGesture = recgonizer as PanGestureRecognizer; Point translation = panGesture.GetTranslationInView (this); panGesture.SetTranslationInView (new Point (0, 0), this); // MyLabel.Text = "PAN " + recognizer.LocationInView (view.ParentView); // Debug.WriteLine ("PAN " + panGesture); // Debug.WriteLine ("location " + panGesture.LocationInView (this)); switch (panGesture.State) { case GestureRecognizerState.Began: break; case GestureRecognizerState.Changed: double newPosition = _contentView.X + translation.X; var endWidth = _contentWidth; Debug.WriteLine ("new pos " + newPosition + " endWidth " + endWidth); if (newPosition >= ((-endWidth) - (Width / 2)) && (newPosition <= (Width / 2))) { _contentView.Layout (GetBoundsWithX (newPosition)); } break; case GestureRecognizerState.Cancelled: case GestureRecognizerState.Ended: case GestureRecognizerState.Failed: //scroll to page location, set index double currentPage = (-_contentView.X) / Width; Boolean isBehindHalfScreen = (currentPage - (int)currentPage) > 0.5; if (isBehindHalfScreen && (currentPage + 1) < NumberOfPages) { CurrentPageIndex = (int)(currentPage + 1); } else { CurrentPageIndex = (int)currentPage; } AnimateToPageIndex (CurrentPageIndex); break; case GestureRecognizerState.Possible: default: break; } }
/// <summary> /// Removes the gesture recognizer. This is a temporary method while Xamarin don't expose any api /// for us to hook into their gesture recognizers mechanism. /// </summary> /// <param name="view">View.</param> /// <param name="recognizer">Recognizer.</param> public static void RemoveGestureRecognizer(this View view, BaseGestureRecognizer recognizer) { // recognizer.NativeGestureRecognizer?.RemoveRecognizer (recognizer); }