我试图关闭弹出和推送页面的所有动画。我制作了一个自定义渲染器:
[assembly: ExportRenderer(typeof(NavigationPage), typeof(CustomNavigationPageRenderer))]
namespace MyNamespace
{
public class CustomNavigationPageRenderer : NavigationRenderer
{
protected override Task<bool> OnPushAsync(Page view, bool animated)
{
return base.OnPushAsync(view, false);
}
protected override Task<bool> OnPopViewAsync(Page page, bool animated)
{
return base.OnPopViewAsync(page, false);
}
protected override Task<bool> OnPopToRoot(Page page, bool animated)
{
return base.OnPopToRoot(page, false);
}
}
推动工作完美,从不显示动画。同样的渲染器也适用于Android。但是在弹出之后总是会调用OnPopViewAsync,因此会显示动画。我使用的是Xamarin.Forms v2.3.0.46-pre3。有没有其他人遇到这个问题并找到了解决方法?
答案 0 :(得分:2)
CustomNavigationPageRenderer
中的另外两个覆盖应该这样做:
public override UIViewController PopViewController(bool animated)
{
return base.PopViewController(false);
}
public override UIViewController[] PopToRootViewController(bool animated)
{
return base.PopToRootViewController(false);
}