Как добавить переходы между представлениями / страницами, когда я использую SwipeGestureRecognizer в iOS - PullRequest
0 голосов
/ 09 июля 2020

Я использую ContentView внутри ContentPage, как это

<ContentView x:Name="MyContent"
                         VerticalOptions="FillAndExpand"
                         HorizontalOptions="FillAndExpand">
                <ContentView.GestureRecognizers>
                    <SwipeGestureRecognizer Swiped="SwipLeft" Direction="Left"/>
                    <SwipeGestureRecognizer Swiped="SwipRight" Direction="Right"/>
                </ContentView.GestureRecognizers>
 </ContentView>

в коде позади я установил относительный контент для ContentView в соответствии с SwipeDirection, как показано ниже. и то же, что и для SwipRight.

private void SwipLeft(object sender, SwipedEventArgs e)
        {
            
                if (e.Direction == SwipeDirection.Left)
                {
                   //set the relavent page content here               
                }                                      
        }

Мне нужно установить анимацию или переход, которые будут появляться при перелистывании страниц. Мне это нужно только для iOS. Может ли кто-нибудь помочь мне в этом, или любой метод знает кого-нибудь, чтобы достичь этого?

вы можете получить идею из этого снимка щелкните здесь, чтобы увидеть изображение весь контент и все сделано, мне просто нужно добавить переходы между страницами.

1 Ответ

0 голосов
/ 10 июля 2020

Вы можете использовать TabbedPage . Похоже, вы хотите, чтобы вкладка отображалась в верхней части экрана. В вашем случае вы можете установить плагин TopTabbedPage из nuget.

Usage

<forms:TopTabbedPage
    xmlns="http://xamarin.com/schemas/2014/forms"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    x:Class="Naxam.Demo.TestPage"
    xmlns:views="clr-namespace:Naxam.Demo"
    xmlns:forms="clr-namespace:Naxam.Controls.Forms;assembly=Naxam.TopTabbedPage.Forms"
    BarTextColor="#00b9e1"
    BarIndicatorColor="#00b9e1"
    BarBackgroundColor="#ffffff"
    Title="MyRide">
    <views:Page1 />  // here is the content page , you need to put each contentview in independent ContenPage
    <views:Page2 />
</forms:TopTabbedPage>

И в iOS проекте -> AppDelegate.cs

public override bool FinishedLaunching(UIApplication app, NSDictionary options)
    {
        // Override point for customization after application launch.
        // If not required for your application you can safely delete this method
        TopTabbedRenderer.Init();
       
        Xamarin.Forms.Forms.Init();

        LoadApplication(new App());

  
        return base.FinishedLaunching(app, options);
    }

Более подробную информацию о плагине вы можете найти на сайте проекта github .

...