[英]Xamarin Forms Custom PopAsync Close Animation
按照这个问题和答案,我已经为PushAsync
创建了一个新的PageRenderer
,或者PushModelAsync
工作得很好。 我想为 PopAsync 制作相同的PopAsync
因为该方法有一个 animation Docs的boolean
重载。 我已经完成了研究,但找不到与为此方法创建自定义 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 渲染器来自定义每个平台上的事务样式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.