Проведите через предыдущие изображения - PullRequest
0 голосов
/ 29 декабря 2018

У меня есть приложение, разработанное в Xamarin с VS2017.У меня есть страница, которую пользователь использует для добавления изображений.

enter image description here

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

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

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

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

В целом, я хочу иметь возможность вернуться назад во времени, проведя пальцем слева направо, а затем вперед вправо влево.

TIA

1 Ответ

0 голосов
/ 23 января 2019

Вы можете объявить пользовательский вид с помощью Swipe.

public class SwipeContainer : ContentView
{
    public event EventHandler<SwipedEventArgs> Swipe;

    public SwipeContainer()
    {
        GestureRecognizers.Add(GetSwipeGestureRecognizer(SwipeDirection.Left));
        GestureRecognizers.Add(GetSwipeGestureRecognizer(SwipeDirection.Right));
        GestureRecognizers.Add(GetSwipeGestureRecognizer(SwipeDirection.Up));
        GestureRecognizers.Add(GetSwipeGestureRecognizer(SwipeDirection.Down));
    }

    SwipeGestureRecognizer GetSwipeGestureRecognizer(SwipeDirection direction)
    {
        var swipe = new SwipeGestureRecognizer { Direction = direction };
        swipe.Swiped += (sender, e) => Swipe?.Invoke(this, e);
        return swipe;
    }
}

И затем на своей странице:

<ContentPage ...>
    <StackLayout>
        <local:SwipeContainer Swipe="OnSwiped">
        </local:SwipeContainer>
    </StackLayout>
</ContentPage>

И обработать событие OnSwiped в коде позади:

void OnSwiped(object sender, SwipedEventArgs e)
{
    switch (e.Direction)
    {
        case SwipeDirection.Left:
            // Handle the swipe
            break;
        case SwipeDirection.Right:
            // Handle the swipe
            break;
        case SwipeDirection.Up:
            // Handle the swipe
            break;
        case SwipeDirection.Down:
            // Handle the swipe
            break;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...