Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
A custom renderer to set custom animation for NavigationPage.PushAsync and NavigationPage.PopAsync on iOS with Xamarin Forms.
[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);
}
}
}
@pouya-daneshvar-freelands-it

This comment has been minimized.

Copy link

pouya-daneshvar-freelands-it commented Oct 11, 2017

can you please send the same code for android ?

@Suri12345

This comment has been minimized.

Copy link

Suri12345 commented May 17, 2018

Can you Please send the same code for Android..
Mail id:-ch.surendrac5@gmail.com

@Suri12345

This comment has been minimized.

Copy link

Suri12345 commented May 17, 2018

Can you Please send me the code for Android..
mail id:- ch.surendrac5@gmail.com.

@gromovic

This comment has been minimized.

Copy link

gromovic commented May 29, 2019

Need help to make it work with Prism...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.