void ToggleShowing(bool isShowing, bool animated) { if (_contentPage == null) { _contentPage = new YoutubeStyleContentPage(); _contentPage.ParentHeight = Height; PageContainer.Content = _contentPage; _panGesture = new PanGestureRecognizer(); _panGesture.OnAction += Gesture_OnAction; _panGesture.IsConsumingTouchesInParallel = true; _contentPage.VideoPlayerView.AddGestureRecognizer(_panGesture); } var minHeight = _contentPage.MinimumHeightRequest; var minWidth = _contentPage.MinimumWidthRequest; _contentBounds.Y = isShowing ? 0 : Height - minHeight; _contentBounds.X = isShowing ? 0 : Width - minWidth; _contentBounds.Width = isShowing ? Width : minWidth; _contentBounds.Height = isShowing ? Height : minHeight; if (MediaItemsListView.SelectedItem != null) { _contentPage.Item = MediaItemsListView.SelectedItem as MediaItem; } if (animated) { PageContainer.LayoutTo(_contentBounds); } else { PageContainer.Layout(_contentBounds); } }
void AddSomeGesturesUsingCode() { //2 options: //1. use the standard xamarin api. e.g. view.GestureRecgonizers.Add(yourgesturerecognizer) // and then call view.ProcessGestures(); // this has the benefit that when Xamarin add an api hook we can remove the view.ProcessGestures call and // it will all be good. //2. use the extension method view.AddGestureRecognizer(yourgesturerecognizer) // this is easier to use; and does everything under the hood; but it's a bit more obtrusive. // in all cases, until Xamarin do more to open up the api, you must use the view extension method // removeGestureRecognizer // comment on https://bugzilla.xamarin.com/show_bug.cgi?id=30467 to get Xamarin to expand // IGestureRecognizer with some add/remove hooks var panRecognizer = new PanGestureRecognizer (); panRecognizer.OnAction += OnAction; var Box3 = new BoxView () { Color = Color.Olive, }; MainLayout.Children.Add (Box3); Box3.Layout (new Rectangle (100, 400, 100, 100)); // Box3.AddGestureRecognizer (panRecognizer); var panRecognizerWith2Tocuhes = new TwinTechs.Gestures.PanGestureRecognizer (); panRecognizerWith2Tocuhes.OnAction += OnAction; panRecognizerWith2Tocuhes.MinimumNumberOfTouches = 2; Label2.GestureRecognizers.Add (panRecognizerWith2Tocuhes); Label2.ProcessGestureRecognizers (); }
public PanGestureExample3 () { InitializeComponent (); MainLayout.OnLayoutChildren += MainLayout_OnLayoutChildren; OuterView = new StackLayout { Padding = new Thickness (50), BackgroundColor = Color.Yellow }; this.MainLayout.Children.Add (OuterView); OuterView.Layout (_outerLayoutBounds); Box = new BoxView { Color = Color.Red, WidthRequest = 150, HeightRequest = 150, }; OuterView.Children.Add (Box); var panRecognizer = new PanGestureRecognizer (); panRecognizer.IsConsumingTouchesInParallel = true; panRecognizer.OnAction += Gesture_OnAction; Box.AddGestureRecognizer (panRecognizer); Box2 = new BoxView (); Box2.Color = Color.Blue; this.MainLayout.Children.Add (Box2); Box2.Layout (_box2Bounds); panRecognizer = new PanGestureRecognizer (); panRecognizer.OnAction += Gesture_OnAction; panRecognizer.IsConsumingTouchesInParallel = true; Box2.AddGestureRecognizer (panRecognizer); DoBoxAnimation (); }
public PanGestureExample3() { InitializeComponent(); MainLayout.OnLayoutChildren += MainLayout_OnLayoutChildren; OuterView = new StackLayout { Padding = new Thickness(50), BackgroundColor = Color.Yellow }; this.MainLayout.Children.Add(OuterView); OuterView.Layout(_outerLayoutBounds); Box = new BoxView { Color = Color.Red, WidthRequest = 150, HeightRequest = 150, }; OuterView.Children.Add(Box); var panRecognizer = new PanGestureRecognizer(); panRecognizer.IsConsumingTouchesInParallel = true; panRecognizer.OnAction += Gesture_OnAction; Box.AddGestureRecognizer(panRecognizer); Box2 = new BoxView(); Box2.Color = Color.Blue; this.MainLayout.Children.Add(Box2); Box2.Layout(_box2Bounds); panRecognizer = new PanGestureRecognizer(); panRecognizer.OnAction += Gesture_OnAction; panRecognizer.IsConsumingTouchesInParallel = true; Box2.AddGestureRecognizer(panRecognizer); DoBoxAnimation(); }
void AddSomeGesturesUsingCode() { //2 options: //1. use the standard xamarin api. e.g. view.GestureRecgonizers.Add(yourgesturerecognizer) // and then call view.ProcessGestures(); // this has the benefit that when Xamarin add an api hook we can remove the view.ProcessGestures call and // it will all be good. //2. use the extension method view.AddGestureRecognizer(yourgesturerecognizer) // this is easier to use; and does everything under the hood; but it's a bit more obtrusive. // in all cases, until Xamarin do more to open up the api, you must use the view extension method // removeGestureRecognizer // comment on https://bugzilla.xamarin.com/show_bug.cgi?id=30467 to get Xamarin to expand // IGestureRecognizer with some add/remove hooks var panRecognizer = new PanGestureRecognizer(); panRecognizer.OnAction += OnAction; var Box3 = new BoxView() { Color = Color.Olive, }; MainLayout.Children.Add(Box3); Box3.Layout(new Rectangle(100, 400, 100, 100)); // Box3.AddGestureRecognizer (panRecognizer); var panRecognizerWith2Tocuhes = new TwinTechs.Gestures.PanGestureRecognizer(); panRecognizerWith2Tocuhes.OnAction += OnAction; panRecognizerWith2Tocuhes.MinimumNumberOfTouches = 2; Label2.GestureRecognizers.Add(panRecognizerWith2Tocuhes); Label2.ProcessGestureRecognizers(); }
public PageScrollerControl () : base () { _contentView = new StackLayout () {Orientation = StackOrientation.Horizontal, Spacing = 0 }; Children.Add (_contentView); var gesture2 = new PanGestureRecognizer (); gesture2.OnAction += Gesture_OnAction; this.AddGestureRecognizer (gesture2); IsClippedToBounds = true; Pages.CollectionChanged += Pages_CollectionChanged; }
public PageScrollerControl () : base () { Pages = new ObservableCollection<VisualElement> (); _contentView = new StackLayout () {Orientation = StackOrientation.Horizontal, Spacing = 0 }; Children.Add (_contentView); var gesture2 = new PanGestureRecognizer (); gesture2.OnAction += Gesture_OnAction; gesture2.IsConsumingTouchesInParallel = true; gesture2.CancelsTouchesInView = true; this.AddGestureRecognizer (gesture2); IsClippedToBounds = true; Pages.CollectionChanged += Pages_CollectionChanged; }
public GestureScrollListExample() { InitializeComponent(); MainLayout.OnLayoutChildren += MainLayout_OnLayoutChildren; MediaItemsListView.ItemsSource = DataProvider.GetMediaItems(); _panGesture = new PanGestureRecognizer(); _panGesture.OnAction += Gesture_OnAction; _panGesture.IsConsumingTouchesInParallel = true; // _panGesture.CancelsTouchesInView = true; // _panGesture.DelaysTouches = true; // _panGesture.OnGestureShouldBeginDelegate += OnGestureShouldBegin; MediaItemsListView.AddGestureRecognizer(_panGesture); MediaItemsListView.OnScroll += MediaItemsListView_OnScroll; }
public GestureScrollListExample() { InitializeComponent (); MainLayout.OnLayoutChildren += MainLayout_OnLayoutChildren; MediaItemsListView.ItemsSource = DataProvider.GetMediaItems (); _panGesture = new PanGestureRecognizer (); _panGesture.OnAction += Gesture_OnAction; _panGesture.IsConsumingTouchesInParallel = true; // _panGesture.CancelsTouchesInView = true; // _panGesture.DelaysTouches = true; // _panGesture.OnGestureShouldBeginDelegate += OnGestureShouldBegin; MediaItemsListView.AddGestureRecognizer (_panGesture); MediaItemsListView.OnScroll += MediaItemsListView_OnScroll; }
void AddSomeGesturesUsingCode() { //2 options: //1. use the standard xamarin api. e.g. view.GestureRecgonizers.Add(yourgesturerecognizer) // and then call view.ProcessGestures(); // this has the benefit that when Xamarin add an api hook we can remove the view.ProcessGestures call and // it will all be good. //2. use the extension method view.AddGestureRecognizer(yourgesturerecognizer) // this is easier to use; and does everything under the hood; but it's a bit more obtrusive. // in all cases, until Xamarin do more to open up the api, you must use the view extension method // removeGestureRecognizer // comment on https://bugzilla.xamarin.com/show_bug.cgi?id=30467 to get Xamarin to expand // IGestureRecognizer with some add/remove hooks _stackPanRecognizer = new PanGestureRecognizer(); _stackPanRecognizer.OnAction += OnAction; MyStack.AddGestureRecognizer(_stackPanRecognizer); }
void AddSomeGesturesUsingCode () { //2 options: //1. use the standard xamarin api. e.g. view.GestureRecgonizers.Add(yourgesturerecognizer) // and then call view.ProcessGestures(); // this has the benefit that when Xamarin add an api hook we can remove the view.ProcessGestures call and // it will all be good. //2. use the extension method view.AddGestureRecognizer(yourgesturerecognizer) // this is easier to use; and does everything under the hood; but it's a bit more obtrusive. // in all cases, until Xamarin do more to open up the api, you must use the view extension method // removeGestureRecognizer // comment on https://bugzilla.xamarin.com/show_bug.cgi?id=30467 to get Xamarin to expand // IGestureRecognizer with some add/remove hooks _stackPanRecognizer = new PanGestureRecognizer (); _stackPanRecognizer.OnAction += OnAction; MyStack.AddGestureRecognizer (_stackPanRecognizer); }
public PageScrollerControl() : base() { Pages = new ObservableCollection <VisualElement> (); _contentView = new StackLayout() { Orientation = StackOrientation.Horizontal, Spacing = 0 }; Children.Add(_contentView); var gesture2 = new PanGestureRecognizer(); gesture2.OnAction += Gesture_OnAction; gesture2.IsConsumingTouchesInParallel = true; gesture2.CancelsTouchesInView = true; this.AddGestureRecognizer(gesture2); IsClippedToBounds = true; Pages.CollectionChanged += Pages_CollectionChanged; }
public PanGestureExample2 () { InitializeComponent (); MainLayout.OnLayoutChildren += MainLayout_OnLayoutChildren; Box = new BoxView (); Box.Color = Color.Red; this.MainLayout.Children.Add (Box); Box.Layout (_boxBounds); var panRecognizer = new PanGestureRecognizer (); panRecognizer.IsConsumingTouchesInParallel = true; panRecognizer.OnAction += Gesture_OnAction; Box.AddGestureRecognizer (panRecognizer); Box2 = new BoxView (); Box2.Color = Color.Blue; this.MainLayout.Children.Add (Box2); Box2.Layout (_box2Bounds); panRecognizer = new PanGestureRecognizer (); panRecognizer.OnAction += Gesture_OnAction; panRecognizer.IsConsumingTouchesInParallel = true; Box2.AddGestureRecognizer (panRecognizer); DoBoxAnimation (); }
public PanGestureExample2() { InitializeComponent(); MainLayout.OnLayoutChildren += MainLayout_OnLayoutChildren; Box = new BoxView(); Box.Color = Color.Red; this.MainLayout.Children.Add(Box); Box.Layout(_boxBounds); var panRecognizer = new PanGestureRecognizer(); panRecognizer.IsConsumingTouchesInParallel = true; panRecognizer.OnAction += Gesture_OnAction; Box.AddGestureRecognizer(panRecognizer); Box2 = new BoxView(); Box2.Color = Color.Blue; this.MainLayout.Children.Add(Box2); Box2.Layout(_box2Bounds); panRecognizer = new PanGestureRecognizer(); panRecognizer.OnAction += Gesture_OnAction; panRecognizer.IsConsumingTouchesInParallel = true; Box2.AddGestureRecognizer(panRecognizer); DoBoxAnimation(); }
void ToggleShowing (bool isShowing, bool animated) { if (_contentPage == null) { _contentPage = new YoutubeStyleContentPage (); _contentPage.ParentHeight = Height; PageContainer.Content = _contentPage; _panGesture = new PanGestureRecognizer (); _panGesture.OnAction += Gesture_OnAction; _panGesture.IsConsumingTouchesInParallel = true; _contentPage.VideoPlayerView.AddGestureRecognizer (_panGesture); } var minHeight = _contentPage.MinimumHeightRequest; var minWidth = _contentPage.MinimumWidthRequest; _contentBounds.Y = isShowing ? 0 : Height - minHeight; _contentBounds.X = isShowing ? 0 : Width - minWidth; _contentBounds.Width = isShowing ? Width : minWidth; _contentBounds.Height = isShowing ? Height : minHeight; if (MediaItemsListView.SelectedItem != null) { _contentPage.Item = MediaItemsListView.SelectedItem as MediaItem; } if (animated) { PageContainer.LayoutTo (_contentBounds); } else { PageContainer.Layout (_contentBounds); } }