在Xamarin Forms

时间:2018-02-22 09:47:41

标签: c# xamarin xamarin.forms

在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);

1 个答案:

答案 0 :(得分:6)

您必须设置超时才能使动画生效。在OnAppearing实际出现之前很久就会调用Page。在超时中插入动画,如下所示..

Task.Delay(1000).ContinueWith(t => BounceUp());

成为BounceUp动画故事板。

更新:您还必须在async方法

中使用修饰符OnAppearing