1

我正在开发一个我植入了滑动功能的应用程序。

当用户滑动一个框时,它会触发一个事件,在该事件中该框被动画以滑动一侧。我在哪里创建了如下所示的动画

boxview.Swiped += (s, e) =>
{
    if (e.Direction == MR.Gestures.Direction.Right)
    {
        boxview.TranslateTo(-600, 0, 500, null);
    }
}

所以我想做的是忽略这个,如果在 500ms 时间内再次调用它来完成动画。

一直在考虑只参加活动(e)并取消它。但我仍然需要一种方式来说明它应该只在时间跨度内完成。并且没有运气让它工作。

无论如何,感谢您提供的任何意见,并感谢您的时间。

4

2 回答 2

1

您可以启动一个计时器并在下一个事件中检查它。

于 2015-11-10T08:59:14.727 回答
1

由于我不熟悉 Xamarin 本身,因此这个答案是理论上的。TranslateTo 似乎是可等待的,因此您可以使用正在滑动的标志,等待转换为并在此之后重置标志

bool swiping;
boxview.Swiped += async (s, e) =>
{
    if (e.Direction == MR.Gestures.Direction.Right && !swiping)
    {
        swiping = true;
        await boxview.TranslateTo(-600, 0, 500, null);
        swiping =false;
    }
}
于 2015-11-10T09:07:55.920 回答