Я разрабатываю приложение, в котором при двойном нажатии мне нужно выполнить некоторые действия, но для них требуется позиция, в которой было выполнено это двойное нажатие. Эта информация обычно содержится в деталях таких событий, как «onTapDown / Up».
Теперь я знаю, что вы можете вызывать как «onTapDown», так и «doubleTap» для GestureDetector, но если у вас есть дочерний элемент, который принимает жест «onTap» «onTapDown» не срабатывает при двойном касании. В моем случае у меня есть WebView под GestureDetector, поэтому срабатывает только onDoubleTap.
Я уже прокомментировал этот запрос (https://github.com/flutter/flutter/issues/20000) команде Flutter, чтобы добавить: детали "на" onDoubleTap ", но похоже, что это займет некоторое время.
В том же потоке они предлагают несколько решений, которые я уже пробовал. 1-й, используя этот код:
var lastTapDown = 0;
onTapDown: (details) {
var now = DateTime.now().millisecondsSinceEpoch;
if (now - lastTapDown < 200) {
print("Double Tap!")
}
lastTapDown = now;
},
...
Это первое решение работает, но я не могу его использовать, поскольку мне нужно, чтобы WebView запрашивал "onTap".
И другой, использующий этот плагин: https://github.com/tomwyr/positioned-tap-detector, который я сделал, и это здорово, но он сталкивается с той же проблемой, что и я, "onTapDown" не сработает, если у вас есть ребенок, который выигрывает "onTap" на арене.
Так что, если кто-нибудь может помочь мне получить эти позиции, я буду очень признателен. :)
Спасибо.