Inheritance: Xamarin.Forms.ContentPage
        public async override Task Appearing(View content, PopupPage page)
        {
            var taskList = new List<Task>();

            taskList.Add(base.Appearing(content, page));

            if (content != null)
            {
                var topOffset = GetTopOffset(content, page);
                var leftOffset = GetLeftOffset(content, page);

                if (PositionIn == MoveAnimationOptions.Top)
                {
                    content.TranslationY = -topOffset;
                }
                else if (PositionIn == MoveAnimationOptions.Bottom)
                {
                    content.TranslationY = topOffset;
                }
                else if (PositionIn == MoveAnimationOptions.Left)
                {
                    content.TranslationX = -leftOffset;
                }
                else if (PositionIn == MoveAnimationOptions.Right)
                {
                    content.TranslationX = leftOffset;
                }

                taskList.Add(content.TranslateTo(_defaultTranslationX, _defaultTranslationY, DurationIn, EasingIn));
            }

            page.IsVisible = true;

            await Task.WhenAll(taskList);
        }
 public override void Disposing(View content, PopupPage page)
 {
     if (HasBackgroundAnimation && page.BackgroundImage == null)
     {
         page.BackgroundColor = _backgroundColor;
     }
 }
 public override void Preparing(View content, PopupPage page)
 {
     if (HasBackgroundAnimation && page.BackgroundImage == null)
     {
         _backgroundColor = page.BackgroundColor;
         page.BackgroundColor = GetColor(0);
     }
 }
        // Private

        private static void RemovePopup(PopupPage page)
        {
            _popupStack.Remove(page);
            Device.BeginInvokeOnMainThread(() =>
            {
                DependencyService.Get<IPopupNavigation>().RemovePopup(page);
            });
        }
        public void RemovePopup(PopupPage page)
        {
            var renderer = page.GetOrCreateRenderer();
            var viewController = renderer?.ViewController;

            if (viewController != null && !viewController.IsBeingDismissed)
                renderer.NativeView.RemoveFromSuperview();

        }
        public override void Disposing(View content, PopupPage page)
        {
            base.Disposing(content, page);

            page.IsVisible = true;

            if (content == null) return;

            content.TranslationY = _defaultTranslationY;
        }
 public void RemovePopup(PopupPage page)
 {
     var renderer = page.GetOrCreateRenderer();
     if (renderer != null)
     {
         _decoreView.RemoveView(renderer.ViewGroup);
         UpdateListeners(false);
         //renderer.Dispose();
     }
 }
        public override void Preparing(View content, PopupPage page)
        {
            base.Preparing(content, page);

            page.IsVisible = false;

            if(content == null) return;

            UpdateDefaultTranslations(content);
        }
 public override void Disposing(View content, PopupPage page)
 {
     if (HasBackgroundAnimation)
     {
         page.Opacity = _defaultOpacity;
     }
     else if (content != null)
     {
         page.Opacity = _defaultOpacity;
     }
 }
        public override void Preparing(View content, PopupPage page)
        {
            if(HasBackgroundAnimation) base.Preparing(content, page);

            page.IsVisible = false;

            if(content == null) return;

            UpdateDefaultProperties(content);

            if(!HasBackgroundAnimation) content.Opacity = 0;
        }
        public void AddPopup(PopupPage page)
        {
            page.Parent = Application.Current.MainPage;

            var popup = new global::Windows.UI.Xaml.Controls.Primitives.Popup();
            var renderer = (PopupPageRenderer)page.GetOrCreateRenderer();

            renderer.Prepare(popup);
            popup.Child = renderer.ContainerElement;
            popup.IsOpen = true;
            page.ForceLayout();
        }
        public void RemovePopup(PopupPage page)
        {
            var renderer = (PopupPageRenderer)page.GetOrCreateRenderer();
            var popup = renderer.Container;
            //((PopupPageRenderer)popup.Child).Dispose();
            if (popup == null)
                return;

            renderer.Destroy();
            popup.Child = null;
            popup.IsOpen = false;
        }
        public override void Disposing(View content, PopupPage page)
        {
            if (HasBackgroundAnimation) base.Disposing(content, page);

            page.IsVisible = true;

            if(content == null) return;

            content.Scale = _defaultScale;
            content.Opacity = _defaultOpacity;
            content.TranslationX = _defaultTranslationX;
            content.TranslationY = _defaultTranslationY;
        }
 public override void Preparing(View content, PopupPage page)
 {
     if (HasBackgroundAnimation)
     {
         _defaultOpacity = page.Opacity;
         page.Opacity = 0;
     }
     else if(content != null)
     {
         _defaultOpacity = content.Opacity;
         content.Opacity = 0;
     }
 }
        public override Task Appearing(View content, PopupPage page)
        {
            if (HasBackgroundAnimation)
            {
                return page.FadeTo(1, DurationIn, EasingIn);
            }
            if (content != null)
            {
                return content.FadeTo(1, DurationIn, EasingIn);
            }

            return Task.FromResult(0);
        }
        public async static Task RemovePageAsync(PopupPage page, bool animate = true)
        {
            if (page == null)
                throw new NullReferenceException("Page can not be null");

            if (!page.IsAnimate)
            {
                if (animate) await page.DisappearingAnimation();
                RemovePopup(page);
                await Task.Delay(50);
                page.DisposingAnimation();
            }
        }
        public void AddPopup(PopupPage page)
        {
            var decoreView = _decoreView;

            page.Parent = XApplication.Current.MainPage;

            var renderer = page.GetOrCreateRenderer();

            page.Layout(DependencyService.Get<IScreenHelper>().ScreenSize);

            decoreView.AddView(renderer.ViewGroup);
            UpdateListeners(true);
        }
Beispiel #18
0
        private void PopupPage_Disappearing(object sender, EventArgs e)
        {
            Rg.Plugins.Popup.Pages.PopupPage page = sender as Rg.Plugins.Popup.Pages.PopupPage;
            if (page != null)
            {
                page.Disappearing -= PopupPage_Disappearing;
            }

            if (overlayGrid.IsVisible)
            {
                overlayGrid.IsVisible = false;
            }
        }
        public void AddPopup(PopupPage page)
        {
            var topViewController = GetTopViewController();
            var topRenderer = topViewController.ChildViewControllers.LastOrDefault() as IVisualElementRenderer;

            if (topRenderer != null)
                page.Parent = topRenderer.Element;
            else
                page.Parent = Application.Current.MainPage;

            var renderer = page.GetOrCreateRenderer();

            topViewController.View.AddSubview(renderer.NativeView);
        }
        public override Task Disappearing(View content, PopupPage page)
        {
            _defaultOpacity = page.Opacity;

            if (HasBackgroundAnimation)
            {
                return page.FadeTo(0, DurationOut, EasingOut);
            }
            if (content != null)
            {
                return content.FadeTo(0, DurationOut, EasingOut);
            }

            return Task.FromResult(0);
        }
        public async override Task Disappearing(View content, PopupPage page)
        {
            var taskList = new List<Task>();

            taskList.Add(base.Disappearing(content, page));

            if (content != null)
            {
                _defaultTranslationY = content.TranslationX;

                var topOffset = GetTopOffset(content, page);

                taskList.Add(content.TranslateTo(content.TranslationX, topOffset, DurationOut, EasingOut));
            };

            await Task.WhenAll(taskList);
        }
 public static Task PushAsync(PopupPage page, bool animate = true)
 {
     var task = new TaskCompletionSource<bool>();
     if (animate)
     {
         page.PreparingAnimation();
         page.ExecuteWhenAppearingOnce(async () =>
         {
             await page.AppearingAnimation();
             task.TrySetResult(true);
         });
     }
     DependencyService.Get<IPopupNavigation>().AddPopup(page);
     _popupStack.Add(page);
     if (!animate) task.TrySetResult(true);
     return task.Task;
 }
        public async override Task Appearing(View content, PopupPage page)
        {
            var taskList = new List<Task>();

            taskList.Add(base.Appearing(content, page));

            if (content != null)
            {
                var topOffset = GetTopOffset(content, page);
                content.TranslationY = topOffset;

                taskList.Add(content.TranslateTo(content.TranslationX, _defaultTranslationY, DurationIn, EasingIn));
            };

            page.IsVisible = true;

            await Task.WhenAll(taskList);
        }
        public override Task Appearing(View content, PopupPage page)
        {
            if (HasBackgroundAnimation && page.BackgroundImage == null)
            {
                TaskCompletionSource<bool> task = new TaskCompletionSource<bool>();
                page.Animate("backgroundFade", d =>
                {
                    page.BackgroundColor = GetColor(d);
                }, 0, _backgroundColor.A, length: DurationIn, finished: (d, b) =>
                {
                    task.SetResult(true);
                });

                return task.Task;
            }

            return Task.FromResult(0);
        }
 public static Task PushPopupAsync(this INavigation sender, PopupPage page, bool animate = true)
 {
     return PopupNavigation.PushAsync(page, animate);
 }
        public async override Task Disappearing(View content, PopupPage page)
        {
            var taskList = new List<Task>();

            taskList.Add(base.Disappearing(content, page));

            if (content != null)
            {
                UpdateDefaultTranslations(content);

                var topOffset = GetTopOffset(content, page);
                var leftOffset = GetLeftOffset(content, page);

                if (PositionOut == MoveAnimationOptions.Top)
                {
                    taskList.Add(content.TranslateTo(_defaultTranslationX, -topOffset, DurationOut, EasingOut));
                }
                else if (PositionOut == MoveAnimationOptions.Bottom)
                {
                    taskList.Add(content.TranslateTo(_defaultTranslationX, topOffset, DurationOut, EasingOut));
                }
                else if (PositionOut == MoveAnimationOptions.Left)
                {
                    taskList.Add(content.TranslateTo(-leftOffset, _defaultTranslationY, DurationOut, EasingOut));
                }
                else if (PositionOut == MoveAnimationOptions.Right)
                {
                    taskList.Add(content.TranslateTo(leftOffset, _defaultTranslationY, DurationOut, EasingOut));
                }
            }

            await Task.WhenAll(taskList);
        }
 public static Task RemovePopupPageAsync(this INavigation sender, PopupPage page, bool animate = true)
 {
     return PopupNavigation.RemovePageAsync(page, animate);
 }