Блокировать событие во время анимации
Я работаю над приложением, в котором я имплантировал функцию смахивания.
Когда пользователь проводит пальцем по блоку, запускается событие, при котором блок анимируется, чтобы сдвинуть сторону. где я создал анимацию, как показано ниже
boxview.Swiped += (s, e) =>
{
if (e.Direction == MR.Gestures.Direction.Right)
{
boxview.TranslateTo(-600, 0, 500, null);
}
}
Так что я хочу игнорировать это, если, если он вызывается снова в течение 500 мс времени, необходимого для завершения анимации.
Мысль о том, чтобы просто взять событие (е) и отменить его. но мне все еще нужен способ сказать, что он должен делать это только в течение промежутка времени. и не повезло заставить его работать.
в любом случае спасибо за любой вклад, который вы можете иметь, и спасибо за ваше время.
2 ответа
Поскольку я не знаком с самим 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;
}
}
Вы можете запустить таймер и проверить его на следующем событии.