动画运行时阻止事件

本文关键字:事件 运行时 动画 | 更新日期: 2023-09-27 18:21:22

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

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

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

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

我一直在考虑取消活动。但我仍然需要一种方法来说它应该只在时间范围内完成。但运气不好。

不管怎样,谢谢你的意见,谢谢你抽出时间。

动画运行时阻止事件

由于我不熟悉Xamarin本身,所以这个答案是理论性的。TranslateTo似乎是不可用的,所以你可以使用你正在滑动的标志,等待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;
    }
}

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