Member 13742231 Ответов: 1

Как я могу реализовать прокрутку страницы с вкладками в android и iOS?


Я попытался реализовать Swipe tabbed render, но там также есть проблема. Левый боковой свайп работает неправильно.

Что я уже пробовал:

[assembly: ExportRenderer(typeof(TabbedPage), typeof(SwipeTabbedRenderer))]

class SwipeTabbedRenderer : TabbedRenderer
{
    public override void ViewWillAppear(bool animated)
    {
        base.ViewWillAppear(animated);

        NativeView.AddGestureRecognizer(new UISwipeGestureRecognizer(() => SelectNextTab(1)) 
{ Direction = UISwipeGestureRecognizerDirection.Left, 
ShouldRecognizeSimultaneously = ShouldRecognizeSimultaneously 
});
       
 NativeView.AddGestureRecognizer(new UISwipeGestureRecognizer(() => SelectNextTab(-1)) 
{ 
 Direction = UISwipeGestureRecognizerDirection.Right, 
ShouldRecognizeSimultaneously = ShouldRecognizeSimultaneously 
});
    }

    void SelectNextTab(int direction)
    {
        int nextIndex = TabbedPage.GetIndex(Tabbed.CurrentPage) + direction;
        if (nextIndex < 0 || nextIndex >= Tabbed.Children.Count) return;
        var nextPage = Tabbed.Children[nextIndex];
        UIView.Transition(Platform.GetRenderer(Tabbed.CurrentPage).NativeView, Platform.GetRenderer(nextPage).NativeView, 0.15, UIViewAnimationOptions.TransitionCrossDissolve, null);
        Tabbed.CurrentPage = nextPage;
    }

    static bool ShouldRecognizeSimultaneously(UIGestureRecognizer gestureRecognizer, UIGestureRecognizer otherGestureRecognizer) => gestureRecognizer != otherGestureRecognizer;
}

David Crow

"Левый боковой свайп не работает должным образом."

И что именно это означает?

1 Ответов

Рейтинг:
0

Dennis E White

установите точку останова на вашем распознавателе жестов для левых свайпов, и я думаю, вы обнаружите, что она заменяет обычный левый свайп.