在Xamarin Forms中推送页面时,我可以通过将animate属性设置为true来轻松地为其设置动画
await Navigation.PushModalAsync(NavigationPageHelper.Create(new MyPage(), true);
在App()构造函数中从App.xaml.cs打开MainPage时,如何实现相同的功能?我认为MainPage是一个.Animate扩展,但是我没有找到任何关于如何使用它的正确例子。
InitializeComponent();
MainPage = GetMainPage(); // GetMainPage returns the correct page to open
MainPage.SetValue(NavigationPage.BarTextColorProperty, Color.White);
更新
我发现这个代码放在OnAppearing的覆盖中,我可以看到应该做什么,但它实际上什么也没做,有人能看出原因吗?
this.Animate("", (s) => Layout(new Rectangle(X, (1 - s) * Height, Width, Height)), 0, 600, Easing.SpringIn, null, null);
答案 0 :(得分:6)
您必须设置超时才能使动画生效。在OnAppearing
实际出现之前很久就会调用Page
。在超时中插入动画,如下所示..
Task.Delay(1000).ContinueWith(t => BounceUp());
成为BounceUp
动画故事板。
更新:您还必须在async
方法
OnAppearing