如何解决如何在跨平台项目的页面过渡上使用SetCustomAnimations
按下并弹出pages
时,我使用Custom renderer
进行左右转换。我想在共享项目中编写该代码而不使用custom renderer
或dependency services
这是我的代码。我怎么能完全写成cross platform
if
{
transaction.SetCustomAnimations(Resource.Animation.enter_right,Resource.Animation.exit_left,Resource.Animation.enter_left,Resource.Animation.exit_right);
}
else
{
transaction.SetCustomAnimations(Resource.Animation.enter_left,Resource.Animation.exit_right,Resource.Animation.enter_right,Resource.Animation.exit_left);
}
解决方法
您可以使用Xamarin.Plugin.SharedTransitions
这个插件。
https://github.com/GiampaoloGabba/Xamarin.Plugin.SharedTransitions
您可以按照以下步骤使用它。
1。在App.xaml.cs
中,使用以下代码来扭曲主页。
public App()
{
InitializeComponent();
var sharedTransitionNavigationPage=new SharedTransitionNavigationPage(new MainPage());
MainPage = sharedTransitionNavigationPage;
}
在MainPage.xam.cs
中为Animations
和导航添加以下代码。
namespace MyPopUpPageDemo
{
public partial class MainPage : ContentPage
{
public MainPage()
{
//for Animations
SharedTransitionNavigationPage.SetBackgroundAnimation(this,BackgroundAnimation.SlideFromRight);
SharedTransitionNavigationPage.SetTransitionDuration(this,2000);
InitializeComponent();
}
private void Button_Clicked(object sender,EventArgs e)
{
//for navigation
Navigation.PushAsync(new Page1());
}
}
}
在page1中,是相同的。
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class Page1 : ContentPage
{
public Page1()
{
SharedTransitionNavigationPage.SetBackgroundAnimation(this,1000);
InitializeComponent();
}
private void Button_Clicked(object sender,EventArgs e)
{
Navigation.PushAsync(new Page2());
}
}
此处正在运行GIF。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。