xamarin 如何使用PopAsync页面导航动画从右到左?

drkbr07n  于 2023-05-04  发布在  其他
关注(0)|答案(2)|浏览(127)

请告诉我如何在调用PopAsync()时应用从右到左的动画页面效果。
我的代码:

async void LogOut_Tapped(object sender, EventArgs e)
    {           
        await Navigation.PopAsync();
    }

请帮帮我。

of1yzvn4

of1yzvn41#

PopAsync有一个override,它接受一个布尔值来指示是否应该动画。如果您使用Navigation.PopAsync(true)调用它,它将在弹出页面时执行动画。

kkbh8khc

kkbh8khc2#

你可以尝试https://github.com/AlexandrNikulin/AnimationNavigationPage惊人的图书馆。下面的代码块来自项目README(可能略有调整,归功于Alexandr Nikulin):

用法

public class App : Application
{
        public App()
        {
            MainPage = new AnimationNavigationPage(new YourHomePage());
        }
}

创建AnimationPage而不是ContentPage,并在xaml中创建FadePageAnimation或PushPageAnimation或FlipPageAnimation等的示例或从ViewModel绑定。

<?xml version="1.0" encoding="UTF-8"?>
<controls:AnimationPage xmlns="http://xamarin.com/schemas/2014/forms"
        xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
        xmlns:controls="clr-namespace:FormsControls.Base;assembly=FormsControls.Base"
        x:Class="Sample.FadeAnimationPage"
        Title="Fade Animation">
        <controls:AnimationPage.PageAnimation>
            <controls:FadePageAnimation />
        </controls:AnimationPage.PageAnimation>
</controls:AnimationPage>

或者为ContentPage实现接口IAnimationPage。创建EmptyPageAnimation或DefaultPageAnimation或FlipPageAnimation等的示例。

public partial class FirstPage : ContentPage, IAnimationPage
{
        public FirstPage()
        {
            InitializeComponent();
        }
    
        public IPageAnimation PageAnimation { get; } = new FlipPageAnimation { Duration = 650, Subtype = AnimationSubtype.FromLeft }; 
}

相关问题