AnimationNavigationPage仅从左向右滑动,而不是从右向左滑动

时间:2020-01-11 16:11:44

标签: c# xamarin.forms visual-studio-2019

我正在使用 AnimationNavigationPage nuget包(找到here)来尝试创建从右到左的页面幻灯片动画。到目前为止,我似乎只能从左到右,并且在更改动画类型/子类型时并不能反映出这种情况。

我确定我只是想念一些小东西,但我一生中看不到它。

MainPage.xaml.cs

using FormsControls.Base;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;

namespace PageNavigationExample
{
    // Learn more about making custom code visible in the Xamarin.Forms previewer
// by visiting https://aka.ms/xamarinforms-previewer
[DesignTimeVisible(false)]
public partial class MainPage : AnimationPage
{
    public MainPage()
    {
        InitializeComponent();
    }

    private async void Button_Clicked(object sender, EventArgs e)
    {
        await Navigation.PushAsync(new Page1());
    }
}
}

MainPage.xaml

<?xml version="1.0" encoding="utf-8" ?>
<controls:AnimationPage
xmlns:controls="clr-namespace:FormsControls.Base;assembly=FormsControls.Base" xmlns="http://xamarin.com/schemas/2014/forms"
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
         xmlns:d="http://xamarin.com/schemas/2014/forms/design"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
         mc:Ignorable="d"
         x:Class="PageNavigationExample.MainPage">

<controls:AnimationPage.PageAnimation>
    <controls:SlidePageAnimation Duration="Short" Type="Slide" Subtype="FromRight"/>
</controls:AnimationPage.PageAnimation>

<StackLayout>
    <!-- Place new controls here -->
    <Label Text="Main page" 
       HorizontalOptions="Center"
       VerticalOptions="CenterAndExpand" />

    <Button Text="Main page button"
            Clicked="Button_Clicked"/>
</StackLayout>
</controls:AnimationPage>

然后是我尚未修改的用于导航目的的基本内容页面... Page1,Page2等。

在这里我缺少什么,只是单击按钮时使幻灯片动画从右侧滑入,单击“后退”按钮时从左侧滑入?

1 个答案:

答案 0 :(得分:1)

然后我只是出于导航目的的基本内容页面 尚未修改... Page1,Page2等。

您是否让您的Page1,Page2等继承private boolean isActive = true; 并设置2020-01-13 11:34:38.212244+0800 ... Launching with XCTest injected. Preparing to run tests. 2020-01-13 11:34:38.559808+0800 ... Waiting to run tests until the app finishes launching.

例如:

app.xaml.cs:

AnimationPage

MainPage.xaml.cs:

PageAnimation

MainPage.xaml:

public App()
    {
        InitializeComponent();
        MainPage = new AnimationNavigationPage(new MainPage());
    }

Page1.xaml.cs:

public partial class MainPage : AnimationPage
{
  public MainPage()
   {
    InitializeComponent();
   }

  private async void Button_Clicked(object sender, EventArgs e)
   {
    await Navigation.PushAsync(new Page1());
   }
}

Page1.xaml:

<?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:d="http://xamarin.com/schemas/2014/forms/design"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
         mc:Ignorable="d"
         xmlns:controls="clr-namespace:FormsControls.Base;assembly=FormsControls.Base"
         x:Class="App18.MainPage">
<controls:AnimationPage.PageAnimation>
    <controls:SlidePageAnimation Duration="Medium" Subtype="FromRight" />
</controls:AnimationPage.PageAnimation>
<StackLayout>
    <!-- Place new controls here -->
    <Label Text="Main page" 
   HorizontalOptions="Center"
   VerticalOptions="CenterAndExpand" />

    <Button Text="Main page button"
        Clicked="Button_Clicked"/>
</StackLayout>
</controls:AnimationPage>

效果如下:

enter image description here