T хотелось бы отслеживать события указателя во Flutter (указатель вниз / вверх и положение указателя), но всегда есть задержка (около 500 мс) между моментом касания пальцем экрана и событием PointerDown, если только я не пошевелу пальцем немедленно .
Стандартный GestureDetector не обрабатывает это (есть задержка для распознавания события TapDown), поэтому я попробовал код ниже, но безрезультатно: задержка все еще есть.
Любая Идея, как я мог решить эту проблему?
import 'package:flutter/foundation.dart';
import 'package:flutter/gestures.dart';
typedef PositionEventHandler = void Function(Offset);
class MySimplePointerGestureRecognizer extends OneSequenceGestureRecognizer {
final PositionEventHandler onPointerDown;
final PositionEventHandler onPointerUpdate;
final PositionEventHandler onPointerUp;
MySimplePointerGestureRecognizer(
{@required this.onPointerUp,
@required this.onPointerUpdate,
@required this.onPointerDown});
@override
void addPointer(PointerEvent event) {
startTrackingPointer(event.pointer);
resolve(GestureDisposition.accepted);
}
@override
void handleEvent(PointerEvent event) {
if(event is PointerDownEvent) {
onPointerDown(event.position);
}
if (event is PointerMoveEvent) {
onPointerUpdate(event.position);
}
if (event is PointerUpEvent) {
onPointerUp(event.position);
stopTrackingPointer(event.pointer);
}
}
@override
void didStopTrackingLastPointer(int pointer) {}
@override
String get debugDescription => 'simplePointerTracker';
}