请告诉我如何在调用PopAsync()时应用从右到左的动画页面效果。我的代码:
async void LogOut_Tapped(object sender, EventArgs e) { await Navigation.PopAsync(); }
请帮帮我。
of1yzvn41#
PopAsync有一个override,它接受一个布尔值来指示是否应该动画。如果您使用Navigation.PopAsync(true)调用它,它将在弹出页面时执行动画。
PopAsync
Navigation.PopAsync(true)
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 }; }
2条答案
按热度按时间of1yzvn41#
PopAsync
有一个override,它接受一个布尔值来指示是否应该动画。如果您使用Navigation.PopAsync(true)
调用它,它将在弹出页面时执行动画。kkbh8khc2#
你可以尝试https://github.com/AlexandrNikulin/AnimationNavigationPage惊人的图书馆。下面的代码块来自项目README(可能略有调整,归功于Alexandr Nikulin):
用法
创建AnimationPage而不是ContentPage,并在xaml中创建FadePageAnimation或PushPageAnimation或FlipPageAnimation等的示例或从ViewModel绑定。
或者为ContentPage实现接口IAnimationPage。创建EmptyPageAnimation或DefaultPageAnimation或FlipPageAnimation等的示例。