locked
Custom Page Transitions with Xamarin.Forms? RRS feed

  • Question

  • User57913 posted

    Is it possible to override the default Page Transitions for Xamarin.Forms when calling PushAsync or PushModalAsync? For example, I would like to have slide or fade transitions for Android.

    I have tried extending the NavigationRenderer and overriding OnPushAsync, but I can only control the animation of the pushed page and not the current page.

    Thursday, June 19, 2014 10:20 AM

All replies

  • User2496 posted

    Would love to know this as well.

    Thursday, June 19, 2014 11:43 AM
  • User28549 posted

    Add me to the list. Maybe it could be a simple animation parameter?

    PushAsync(Page page) { }
    PushAsync(Page page, Animation animation) { }
    
    Thursday, June 19, 2014 3:38 PM
  • User56129 posted

    In your pages that you are pushing onto the navigation stack, I think you could just call the Animate() function in your OnAppearing(), and implement your animation there.

    Thursday, June 19, 2014 6:25 PM
  • User28549 posted

    ah, or pass it as a parameter... would it be something like this?

    // parent
    var animation = new Animation(); // set it up
    PushAsync(new MyCoolPage(animation));
    
    // child
    private Animation _animation;
    public MyCoolPage(Animation animation)
    {
        _animation = animation;
    }
    protected override void OnAppearing()
    {
        base.OnAppearing();
        this.Animate("anim", _animation);
    }
    
    Thursday, June 19, 2014 6:30 PM
  • User56129 posted

    I would guess so, I haven't actually tinkered around with animation yet, but I know that's what the general logic looked like in the old xamarin

    Thursday, June 19, 2014 6:50 PM
  • User57913 posted

    I tried adding Animation in OnAppearing (new page sliding in) and OnDisappearing (current page sliding out).

    public class BasePage : ContentPage
        {
            protected override void OnAppearing()
            {
                base.OnAppearing();
    
                this.Animate("", (s) => Layout(new Rectangle(((1 - s) * Width), Y, Width, Height)), 16, 600, Easing.Linear, null, null);
            }
    
            protected override void OnDisappearing()
            {
                base.OnDisappearing();
    
                this.Animate("", (s) => Layout(new Rectangle((s * Width) * -1, Y, Width, Height)), 16, 600, Easing.Linear, null, null);
            }
        }
    

    What happens is: Normal page transition happens and then OnAppearing animation happens. OnDisappearing fires, but the animation is not visible.

    For iOS: Current page slides out while new page slides in (default page transition), new page slides in again (OnAppearing).

    For Android: Current page disappears (default page transition), new page slides in (OnAppearing).

    I need to be able to control both the animation of the current page and the animation of the new page, OnPushAsync.

    Friday, June 20, 2014 6:50 AM
  • User49731 posted

    Plus it would be great to have an option to just turn off the default animation as with Windows Phone for instance the current animation when pushing/popping pages really slows things down .. on a previous app without animation (native) switch from one page to another is very quick but with the .Forms animation it's distinctly slower and when doing multiple page switches (i.e. from list, open form, back to list, opening another form etc) it makes the app not very user friendly speed wise .. so it'd be good to have an option to either use animation or not (bool) perhaps on the NavigationPage?

    Friday, June 20, 2014 11:14 AM
  • User58599 posted

    I'm having the same issues with all the methods i've tried hear. The OnAppearing and OnDisappering would be great if the page didn't flicker THEN animate.

    :)

    Saturday, August 2, 2014 6:33 AM
  • User56231 posted

    Would love to have this also. Be very useful specially to catch the user's attention. This gives the user a very good impression of the app, and its kinda cool also.

    Saturday, August 2, 2014 12:33 PM
  • User42253 posted

    I don't have a solution, but really would be a nice feature.

    Wednesday, August 6, 2014 11:30 AM
  • User58005 posted

    I am also interested in this! It would be very useful to have some methods of animation for the different Controls.

    Thursday, August 7, 2014 6:18 PM
  • User14 posted

    There is no way to change the page transition animations.

    @Matt.Cook there are lots of animation methods available for individual controls. See the Xuzzle game example which animates controls around the screen.

    Saturday, August 9, 2014 12:38 AM
  • User55225 posted

    I can understand that this is not considered a high priority item at this point, but providing the ability to perform custom page animations is highly desirable and will allow us to produce more professional and native feeling apps.

    Thanks

    Monday, August 11, 2014 11:09 AM
  • User64161 posted

    I second the desire for custom page animations.

    Monday, August 11, 2014 1:43 PM
  • User64161 posted

    Up vote this user voice idea: http://xamarin.uservoice.com/forums/258559-xamarin-forms-suggestions/suggestions/6289977-control-the-animation-when-navigation-pages

    Wednesday, August 13, 2014 7:14 PM
  • User46527 posted

    There is support in the Android implementation the function takes a bool for animated, but its defaulted to yes in the current implementation, probably in the works though with any luck as then we can do our own custom animations

    Thursday, August 21, 2014 11:56 AM
  • User46527 posted

    https://gist.github.com/DarkLotus/6e550c268790e2226353

    Sorry for the double post, cant edit. But I discovered you can override NavigationPage and its implementation to disable animations at-least on Android. Example code in Gist, should allow you to implement your own animations in OnAppearing

    Friday, August 22, 2014 9:05 AM
  • User71687 posted

    Up Vote!

    Wednesday, September 3, 2014 11:09 PM
  • User52444 posted

    @ChristianNormannEiland? : Although there is no smooth direct way of implementing Animation in Page Transition, your suggestion helped to some extent. Thanks for the Tip.

    Monday, September 22, 2014 10:06 AM
  • User78768 posted

    Hello all, It will be very much of helpful if anyone guide me on the issue- " How it is possible to make a content page with Left drawer and Right drawer animation while opening or closing the drawer on click of left top icon and right top icon respectively. The both icons are present at top of middle content page. And the links clicked in left or right drawer opens page in middle content page. "

    Please help me. I am stuck on this from a week. Thanks in advance

    Tuesday, October 14, 2014 10:01 AM
  • User5777 posted

    Has anybody solved this problem. I am looking to do a custom animation from one page to another such as a fade or cross disolve.

    Thanks.

    Tuesday, November 18, 2014 8:12 PM
  • User36353 posted

    @CraigDunn? this is a thread from June, haven't the team had the time to address such a simple thing? Do you at least have a roadmap that you can share with your users? Forms lacks SEVERAL crucial features and it's really hard to use it in production without turning our code into a mess. I've asked for help on all the support channels and so far my feeling is that you gave up on Forms. Should we also give up on it?

    Saturday, December 6, 2014 7:33 PM
  • User86523 posted

    @CraigDunn?

    There is no way to change the page transition animations.

    This is one of the reasons why Xamarin.Forms should have a big red BETA sign on it. To not to fool people into thinking that it can actually be used for real world consumer application development.

    Sunday, December 7, 2014 9:20 PM
  • User102173 posted

    Has any progress been made on this yet? This seems like a crucial missing feature.

    Saturday, January 24, 2015 4:44 AM
  • User80843 posted

    its seems it is solved in 1.3.

    await Page.Navigation.PushAsync (new AuthorizationPage (), false);

    in AuthorizationPage protected override void OnAppearing() { base.OnAppearing(); this.Animate("", s => Layout (new Rectangle (((-1 + s) * Width), Y, Width, Height)), 16, 250, Easing.Linear, null, null); }

    for left to right sliding

    Wednesday, February 4, 2015 9:09 PM
  • User34158 posted

    @Alex.3651 In IOS, it shows the animation after the page was displayed completely, so it is not the way on IOS.

    Thursday, February 5, 2015 2:13 AM
  • User102245 posted

    I have written a custom renderer to change the animation for iOS.

    [assembly: ExportRenderer(typeof(NavigationPage), typeof(AnimationNavigationRenderer))]
    
    class AnimationNavigationRenderer : NavigationRenderer
    {
        public override void PushViewController(UIViewController viewController, bool animated)
        {
            if (animated)
            {
                // Alternative way with different set of trannsition
                /*
                UIView.Animate(0.75, () =>
                {
                    UIView.SetAnimationCurve(UIViewAnimationCurve.EaseInOut);
                    base.PushViewController(viewController, false);
                    UIView.SetAnimationTransition(UIViewAnimationTransition.CurlUp, this.View, false);
                });
                 */
                var transition = CATransition.CreateAnimation();
                transition.Duration = 0.75;
                transition.Type = CAAnimation.TransitionPush;
    
                View.Layer.AddAnimation(transition, null);
                base.PushViewController(viewController, false);
            }
            else
            {
                base.PushViewController(viewController, false);
            }
        }
    
        public override UIViewController PopViewController(bool animated)
        {
            if (animated)
            {
                // Alternative way with different set of trannsition
                /*                UIView.Animate(0.75, () =>
                {
                    UIView.SetAnimationCurve(UIViewAnimationCurve.EaseInOut);
                    UIView.SetAnimationTransition(UIViewAnimationTransition.CurlDown, this.View, false);
                });
                */
    
                var transition = CATransition.CreateAnimation();
                transition.Duration = 0.75;
                transition.Type = CAAnimation.TransitionFromTop;
    
                View.Layer.AddAnimation(transition, null);
    
                return base.PopViewController(false);
            }
            else
            {
                return base.PopViewController(false);
            }
        }
    }
    

    https://gist.github.com/alexlau811/e12a8c126e6e082a5017

    However, it might conflict with the code above using OnAppearing and OnDisappearing (i.e. you might consider using Device.OS != TargetPlatform.iOS to bypass the code)

    Wednesday, February 25, 2015 2:55 PM
  • User43611 posted

    @AlexLau your code just crashes my app :( I've just added the renderer to my iOS project, it compiles, but crashes on startup. Have you got a small sample app where it works, would be SUPER useful!

    Thursday, April 2, 2015 12:17 AM
  • User73562 posted

    I just succeed in implementing a Custom Animated Transition between 2 pages in iOS.

    What you need to do is to create a TransitionDelegate that you add to the page you are about to push.

    This TransitioningDelegate (UIViewControllerTransitioningDelegate) contains your GestureRecognizer.

    You should also override:

    For the animation : public override IUIViewControllerAnimatedTransitioning GetAnimationControllerForPresentedController(UIViewController presented, UIViewController presenting, UIViewController source)

    For the transition : public override IUIViewControllerInteractiveTransitioning GetInteractionControllerForPresentation(IUIViewControllerAnimatedTransitioning animator)

    (There is also a dismissal method for both of those functions).

    In the UIViewControllerAnimatedTransitioning you create in the GetAnimationControllerForPresentedController fct (the object you return), you need to override TransitionDuration/AnimationEnded and AnimateTransition which will contains your animation.

    In the UIViewControllerInteractiveTransitioning you create in the GetInteractionControllerForPresentation fct (the object you return), you need to override StartInteractiveTransition which will contain your init for the interactive transition (start AnimateTransition and set speed/timeoffset and begintime of your layers to 0).

    Will might do an article about this because it took me almost a week to figure it out (with some help =) ). Objective-C/Swift is a pain in the * to read :(

    Tuesday, April 7, 2015 8:16 AM
  • User123972 posted

    Hey,

    @SEBOUAI, Would you share the code with us?

    Did you find a solution to have custom animations transitions for Android and Windows Phone??

    Thanks

    Tuesday, September 1, 2015 2:31 AM
  • User13349 posted

    @AlexLauni The animator works perfectly in the custom renderer.

    Thursday, September 17, 2015 1:32 PM
  • User140243 posted

    I've been able to override the Navigation transitions for iOS using "UINavigationControllerDelegate".

    I uploaded a sample project with this at https://github.com/reyalpsirc/NavigationExample

    Please note that this project only works with pages that have NavigationPage.SetHasNavigationBar (this, false); and that it could still be improved (since there are some accesses to a static variable).

    At least it works and can be an example for people looking for this on iOS :)

    Tuesday, September 29, 2015 8:34 PM
  • User192317 posted

    Guys, I had the same problem. And i wrote new control for Xamarin.Forms. Check out my Xamarin component 'AnimationNavigationPage': https://components.xamarin.com/view/customnavpage

    It works with all pages for iOS and Droid.

    Wednesday, February 3, 2016 6:27 AM
  • User71165 posted

    @AlexN I'm working with your component, and it appears that PageAnimation is not being called on my ContentPage for iOS public IPageAnimation PageAnimation { get { return new SlidePageAnimation { Duration = 200, Subtype =AnimationSubtype.FromLeft }; } }

    This is working great on Android, just not on iOS

    Friday, March 11, 2016 6:02 PM
  • User192317 posted

    @DeanGrimm Hi !

    I think you forgot this - FormsControls.Touch.Renderers.Init();

    In AppDelegate.cs public override bool FinishedLaunching(UIApplication app, NSDictionary options) { Xamarin.Forms.Forms.Init(); FormsControls.Touch.Renderers.Init(); LoadApplication (new App ()); return base.FinishedLaunching(app, options); }

    Friday, March 11, 2016 6:21 PM
  • User71165 posted

    Working now, thanks!

    Friday, March 11, 2016 6:36 PM
  • User194133 posted

    Modal page transitions can be done by writing page renderer for the page. Here is the code i have used to accomplish the same. Step1 => Implement the UIViewControllerTransitioningDelegate

    public class SlidingHorizontalTransition : UIViewControllerTransitioningDelegate
        {
            private TransitionAnimator _animator;
    
            public override IUIViewControllerAnimatedTransitioning GetAnimationControllerForPresentedController(UIViewController presented, UIViewController presenting, UIViewController source)
            {
                _animator = new TransitionAnimator();
                _animator.Presenting = true;
                return _animator;
            }
    
            public override IUIViewControllerAnimatedTransitioning GetAnimationControllerForDismissedController(UIViewController dismissed)
            {
                _animator = new TransitionAnimator();
                return _animator;
            }
    
            private class TransitionAnimator : UIViewControllerAnimatedTransitioning
            {
                public bool Presenting;
    
                public override double TransitionDuration(IUIViewControllerContextTransitioning transitionContext)
                {
                    return 0.25f;
                }
    
            public override void AnimateTransition(IUIViewControllerContextTransitioning transitionContext)
            {
                var containerView = transitionContext.ContainerView;
                var toVC = transitionContext.GetViewControllerForKey (UITransitionContext.ToViewControllerKey);
                var fromVC = transitionContext.GetViewControllerForKey (UITransitionContext.FromViewControllerKey);
    
                if (Presenting)
                {
                    fromVC.View.UserInteractionEnabled = false;
    
                    containerView.AddSubview(fromVC.View);
                    containerView.AddSubview(toVC.View);
    
                    var endFrame = toVC.View.Frame;
                    var frame = toVC.View.Frame;
    
                    frame.X = frame.Width;
                    toVC.View.Frame = frame;
    
                    UIView.Animate(TransitionDuration(transitionContext), 0, UIViewAnimationOptions.CurveEaseIn, () =>
                        {
                            toVC.View.Frame = endFrame;
                        }, 
                        () =>
                        {
                            transitionContext.CompleteTransition(true);
                        });
                }
                else
                {
                    toVC.View.UserInteractionEnabled = true;
    
                    containerView.Add(toVC.View);
                    containerView.Add(fromVC.View);
    
                    var endFrame = fromVC.View.Frame;
                    endFrame.X = endFrame.Width;
    
                    UIView.Animate(TransitionDuration(transitionContext), 0, UIViewAnimationOptions.CurveEaseOut,async () => 
                        {
                            fromVC.View.Frame = endFrame;
                            await Task.Delay(100);
                            UIApplication.SharedApplication.KeyWindow.AddSubview(toVC.View);
    
                        }, () =>
                        {
                            transitionContext.CompleteTransition(true);
                        });
                }
            }
    

    override void WillMoveToParentViewController (UIKit.UIViewController parent) { base.WillMoveToParentViewController (parent); if (parent != null) { parent.View.BackgroundColor = UIColor.Gray; parent.ModalPresentationStyle = UIKit.UIModalPresentationStyle.Custom; parent.TransitioningDelegate = new SlidingHorizontalTransition ();

            }
    
        }
    

    :smile:

    This worked well for me. hope this helps somebody who are looking for page transitions ::smile:

    Wednesday, June 1, 2016 3:32 AM
  • User174034 posted

    Could not get the iOS Renderer with: public override UIViewController PopViewController(bool animated) to work in Forms 2.3 however: protected override Task OnPopViewAsync(Page page, bool animated) seems to do the trick.

    public override void PushViewController(UIViewController viewController, bool animated) works though.

    Monday, June 20, 2016 12:25 PM
  • User226266 posted

    Hi Alex we are using your custom nav animation and it is crashing throwing an exception: System.NullReferenceException: Object reference not set to an instance of an object.

    We think the issue might be in the SwitchPageAsync > OnDissapearing but there is no line number to look at when the exception is thrown.

    We can simply not get it to work having followed your 'how to' here: https://components.xamarin.com/view/customnavpage and we are using the latest version 1.3.0

    I created a very simple scenario project and below are extracts from the project (we are just trying to get it working on android first)

    App.cs below

    public App() { MainPage = new AnimationNavigationPage(new FirstPage()); }

    Firstpage.cs and the XAML contains the controls:AnimationPage

    public partial class FirstPage : AnimationPage { public FirstPage() { InitializeComponent(); Navigation.PushAsync(new NextPageAgain { PageAnimation = new FlipPageAnimation { Duration = 650, Subtype = AnimationSubtype.FromLeft } }); } }

    NextPageAgain.cs and the XAML also contains the controls:AnimationPage

    public partial class NextPageAgain : AnimationPage { public NextPageAgain() { InitializeComponent(); } }

    I am using Xamarin.Forms 2.3.1.113.pre3 and Xamarin.Android.Support 23.3.0

    If you require the entire project let me know so i can email this to you. It follows the above but is currently crashing.

    Thursday, July 21, 2016 10:36 PM
  • User192317 posted

    Hi Leonard!

    I see, but why you push new page in Constructor of the MainPage ? Please add button to your MainPage and Push new page in ButtonHandler. Or push new page in OnAppearing method.

    Friday, July 22, 2016 6:15 AM
  • User192317 posted

    Fixed! Problem was in Xamarin.Forms 2.3.1.113pre3. Today i will send to you dll's with supporting Xamarin.Forms 2.3.1.113pre3 and update Component in Store as soon as possible

    Tuesday, July 26, 2016 9:26 AM
  • User192317 posted

    For now my component not supporting (AnimationNavigationPage). I will remove it from Xamarin.Components

    Sunday, August 21, 2016 8:38 AM
  • User65534 posted

    If someone has this issue on android There possible solution if u are using appcompat, xamarin forms use two different renderers Xamarin.Forms.Platform.Android.AppCompat.NavigationPageRenderer Xamarin.Forms.Platform.Android.NavigationRenderer

    And first has virtual method SetupPageTransition(FragmentTransaction transaction, bool isPush) so u can set custom animation from resources for default fragment transition

    Sample

    [assembly: ExportRenderer(typeof(NavigationPage), typeof(CustomNavigationRenderer))] namespace Sentinel.Droid.Renderers { public class CustomNavigationRenderer : Xamarin.Forms.Platform.Android.AppCompat.NavigationPageRenderer { protected override void SetupPageTransition(FragmentTransaction transaction, bool isPush) {

            base.SetupPageTransition(transaction, isPush);
            transaction.SetCustomAnimations(Resource.Animation.abc_slide_in_bottom, Resource.Animation.abc_slide_out_bottom);
        }
    }
    

    }

    Sunday, September 4, 2016 3:33 PM
  • User7262 posted

    @Evgeniy.3985 I am also using the AppCompat.NavigationPageRenderer, but it has a problem with the exit animation on when doing a pop. I am trying to implement a slide left-right like iOS navigation. When doing a pop (on android), the exit animation is not working. As I was reading it is a bug because the poped fragment is removed before started the animation. I was looking to override the NavigationPageRenderer but all the methods are private and is imposible to fix it. May be do you have some workaround?

    Sunday, September 4, 2016 9:37 PM
  • User65534 posted

    @JavierHolcman said: @Evgeniy.3985 I am also using the AppCompat.NavigationPageRenderer, but it has a problem with the exit animation on when doing a pop. I am trying to implement a slide left-right like iOS navigation. When doing a pop (on android), the exit animation is not working. As I was reading it is a bug because the poped fragment is removed before started the animation. I was looking to override the NavigationPageRenderer but all the methods are private and is imposible to fix it. May be do you have some workaround?

    Yes, i'm also faced this issue. And implemented ugly hack, before each back navigation im run async method which run new transaction that shows previous fragment and hide current, then delay with hardcode animation length.

    I think it can broke navigation logic, but in my case works fine.

    private async Task FakePopFragment() {

            if (FragmentManager.Fragments.Count() > 1)
            {
                FragmentManager.
                    BeginTransaction().
                    SetCustomAnimations(Resource.Animation.FadeInSmall, Resource.Animation.SlideDown, Resource.Animation.SlideDown,
                    Resource.Animation.FadeInSmall).
                    Show(FragmentManager.Fragments[FragmentManager.Fragments.Count - 2]).
                    Hide(FragmentManager.Fragments.Last()).Commit();
                await Task.Delay(500); //there your animation time in xml
            }
    
    
    
        } 
    

    This executes in mvvmcross presenter before calling real navigation method

    And yes, no virtual methods in such important class is sad

    Monday, September 5, 2016 5:43 PM
  • User128517 posted

    @AlexN Can you send me the updated dlls? My app is crashing with the updated Xamarin.Forms and I need the new dlls so I can release my updates.

    Saturday, September 17, 2016 2:30 AM
  • User1786 posted

    Is there some custom navigation component that finally solves this issue?

    Saturday, September 17, 2016 9:50 AM
  • User226266 posted

    @AlexN said: For now my component not supporting (AnimationNavigationPage). I will remove it from Xamarin.Components

    Hi Alex we use your component and cant say how happy and helpful it is to us :) we hope to see your component come back available to Xamarin components store soon!

    Thanks Leonard

    Tuesday, September 27, 2016 10:32 PM
  • User192317 posted

    Hi Leonard! Happy to hear. My component again available. It will be great if you find time to write review about my component.

    @LeonardHarris said:

    Hi Alex we use your component and cant say how happy and helpful it is to us :) we hope to see your component come back available to Xamarin components store soon!

    Thanks Leonard

    Thursday, October 6, 2016 8:23 PM
  • User262242 posted

    @AlexN said: Hi Leonard! Happy to hear. My component again available. It will be great if you find time to write review about my component.

    @LeonardHarris said:

    Hi Alex we use your component and cant say how happy and helpful it is to us :) we hope to see your component come back available to Xamarin components store soon!

    Thanks Leonard

    Hi Alex, we purchased it under a different account, and game a 5 star review for it :) :)

    Thursday, October 6, 2016 8:28 PM
  • User192317 posted

    @LeonardHarris.0546 said:

    Hi Alex, we purchased it under a different account, and game a 5 star review for it :) :)

    Great! Thanks. Take a look on new version with FormsAppCompatActivity support.

    Thursday, October 6, 2016 8:31 PM
  • User192317 posted

    Hi All! If someone want to try my component i have 100% Discount for first 10 customers (promo code: DISC-Animation-Navigation-Page).

    Tuesday, November 1, 2016 6:22 AM
  • User271092 posted

    I am getting the message Discount does not exist. Are all the coupons used up?

    Saturday, November 5, 2016 12:50 PM
  • User251469 posted

    @AlexN Hey Alex, Loved the component and made a simple Demo app of the possible implementation scenarios for your component. If anyone else is interested in quickly learning how to use it, go and visit https://github.com/bbl-Laobu/AnimatedTransitionNavPageDemo for demo and instructions.

    Enjoy! Laobu

    Wednesday, May 24, 2017 3:37 AM
  • User192317 posted

    @Laobu said: @AlexN Hey Alex, Loved the component and made a simple Demo app of the possible implementation scenarios for your component. If anyone else is interested in quickly learning how to use it, go and visit https://github.com/bbl-Laobu/AnimatedTransitionNavPageDemo for demo and instructions.

    Enjoy! Laobu

    Wow! Looks very good, nice work! Can i use your demo and descriptions for scenarios (i will add it to https://github.com/AlexandrNikulin/AnimationNavigationPage) ?

    Wednesday, May 24, 2017 4:54 AM
  • User251469 posted

    @AlexN Sure, go ahead. A reference back and acknowledgement would be great of course... Let me know if you need any help. :)

    Tuesday, May 30, 2017 3:30 PM
  • User261729 posted

    @EvgenyXf said: If someone has this issue on android There possible solution if u are using appcompat, xamarin forms use two different renderers Xamarin.Forms.Platform.Android.AppCompat.NavigationPageRenderer Xamarin.Forms.Platform.Android.NavigationRenderer

    And first has virtual method SetupPageTransition(FragmentTransaction transaction, bool isPush) so u can set custom animation from resources for default fragment transition

    Sample

    [assembly: ExportRenderer(typeof(NavigationPage), typeof(CustomNavigationRenderer))] namespace Sentinel.Droid.Renderers { public class CustomNavigationRenderer : Xamarin.Forms.Platform.Android.AppCompat.NavigationPageRenderer { protected override void SetupPageTransition(FragmentTransaction transaction, bool isPush) {

            base.SetupPageTransition(transaction, isPush);
            transaction.SetCustomAnimations(Resource.Animation.abc_slide_in_bottom, Resource.Animation.abc_slide_out_bottom);
        }
    }
    

    }

    Thank you @EvgenyXf ..

    Thursday, March 1, 2018 1:28 PM
  • User198446 posted

    Up

    Maybe, somebody can suggest me open source library for getting it?

    Tuesday, March 6, 2018 10:01 PM
  • User198446 posted

    https://github.com/AndreiMisiukevich/GalleyFramework

    My package provides opportunity to create custom animations (But it requires to work only via my Framework) - Only one super page - All screens are extended from AbsoluteLayout.

    But, maybe, there is plugin, which allows to customize animations of native elements (pages)

    thanks

    Tuesday, March 6, 2018 10:07 PM
  • User216512 posted

    @AlexN I am unable to reference your AnimationNavigationPage package in my iOS or Android project. I install version 1.0 from Nuget with no errors, but it does not appear in my references. Have you seen this before?

    Monday, July 2, 2018 2:47 PM
  • User71014 posted

    @AndreiMisiukevich_ Will that work with Shell? I am using Xamarin.Forms Shell.

    Monday, February 10, 2020 8:04 AM
  • User198446 posted

    @"BikashGhosh.3220" that project is deprecated.

    Monday, February 10, 2020 6:56 PM
  • User71014 posted

    Ooh k. Is there anything I can use to achieve the same using Shell...

    Monday, February 10, 2020 7:21 PM