繁体   English   中英

Xamarin Forms 自定义 PopAsync 关闭 Animation

[英]Xamarin Forms Custom PopAsync Close Animation

按照这个问题和答案,我已经为PushAsync创建了一个新的PageRenderer ,或者PushModelAsync工作得很好。 我想为 PopAsync 制作相同的PopAsync因为该方法有一个 animation Docsboolean重载。 我已经完成了研究,但找不到与为此方法创建自定义 animation 有任何关系。

我目前只在研究Android解决方案。

是否可以? 因为目前我有一个很好的 animation 用于推送页面,但是一旦我想摆脱它们,就像方法名称中所说的那样只是POP

更新:我发现使用相同的覆盖方法OnAttachedToWindow创建PushAsync animation 有一个相反的覆盖OnDetachedFromWindow但在执行 animation 代码之前屏幕消失。

我在 Attached 方法和 Detached 上添加了一个断点,当执行PopAsync但没有胺化通过时,代码确实在 Detached 处暂停。 这会是BUG吗? 或者它是在PopAsync的引擎盖下发生的实际实现。

代码

protected override void OnDetachedFromWindow()
{
    var myValue = Preferences.Get("ModelAnimationDetach", false);
    if (myValue)
    {
        var metrics = Resources.DisplayMetrics;
        Android.Views.Animations.Animation translateAnimation = new TranslateAnimation(0, metrics.HeightPixels, 0, 0)
        {
            Duration = 2000
        };
        Animation = translateAnimation;
        translateAnimation.Start();
    }

    base.OnDetachedFromWindow();
}

提前谢谢了。

您可以使用Shell模板开发应用程序,Shell 中的导航具有这种animation样式。

有关更多信息,您可以查看 doc: navigation

如果您不想使用 shell 模板,您可以尝试创建自定义 NavigationPage 渲染器来自定义每个平台上的事务样式。

为此,您可以检查Xamarin Forms Navigation without animation

您还可以在 Xamarin Forms 中查看文章 Animating Page Transitions

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM