我有一个用VS2017在Xamarin中开发的应用程序。我有一个页面供用户用来添加图像。
从屏幕快照中可以看到,用户单击该按钮每天最多可以添加六张图像。
我想做的是从左向右滑动以动态返回时间。这意味着我将通过一次滑动显示昨天的图像,然后通过另一次滑动显示前一天的图像,依此类推。
我当时正在考虑使用轮播,但是如果我有几个月的图像,那将是巨大的。我已经通过使用日期时间选择器设法使其正常运行,但是客户希望滑动!!!
我真的不知道从哪里开始研究和找到解决方案,因此任何指尖都会受到欢迎。
总而言之,我希望能够通过从左向右滑动然后从右向左滑动向前来返回时间。
TIA
答案 0 :(得分:1)
您可以使用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;
}
}