Animation 表单页面动画

Animation 表单页面动画,animation,xamarin.forms,Animation,Xamarin.forms,我正在尝试为我的页面制作动画。我希望只有在第一次加载页面时才会触发该动画。 我的动画代码正在运行,示例: public async Task BackgroundFlyUp() { var destinationRect = new Rectangle(0, Application.Current.MainPage.Height * (1 - FoodViewsConstants.FLY_UP_END), Applicati

我正在尝试为我的页面制作动画。我希望只有在第一次加载页面时才会触发该动画。 我的动画代码正在运行,示例:

public async Task BackgroundFlyUp()
        {
            var destinationRect = new Rectangle(0, Application.Current.MainPage.Height * (1 - FoodViewsConstants.FLY_UP_END),
                Application.Current.MainPage.Width, Application.Current.MainPage.Height * FoodViewsConstants.FLY_UP_END);

            await FlyUp.LayoutTo(destinationRect, FoodViewsConstants.FLY_UP_SPEED, Easing.Linear);
            await ContentGrid.FadeTo(1, FoodViewsConstants.CONTENT_FADE_SPEED);
        }

虽然我不希望我的动画在每次启动
OnAppearing
时都被启动,但我已尝试在我的
OnAppearing
方法中添加动画代码,但它无法正常工作。(淡入淡出正在工作,但弹出的
无效)并且作为
异步方法,它不能放在构造函数中。你们能帮帮我吗?

根据我的测试,我猜你们没有从destinationRect得到正确的答案。
Application.Current.MainPage.Width
Application.Current.MainPage.Height
将获得宽度和高度,除非在初始加载时主页尚未显示

您可以使用屏幕大小来代替

 public async Task BackgroundFlyUp()
    {  
        // Get Metrics
        var mainDisplayInfo = DeviceDisplay.MainDisplayInfo; 

        // Width (in pixels)
        var width = mainDisplayInfo.Width;

        // Height (in pixels)
        var height = mainDisplayInfo.Height;


        var destinationRect = new Rectangle(0, height * (1 - FoodViewsConstants.FLY_UP_END),
            width, height * FoodViewsConstants.FLY_UP_END);


        await FlyUp.LayoutTo(destinationRect, 5000, Easing.Linear);
        
        await ContentGrid.FadeTo(1, FoodViewsConstants.CONTENT_FADE_SPEED);
    }

你能提供更多关于FlyUp.LayoutTo的详细信息吗?
FlyUp.LayoutTo
的包是什么?
FlyUp
是我的绝对布局的名称。使用
LayoutTo
我将更改其高度以匹配
destinationRect