Распознать событие указателя вниз без задержки в Flutter (iOS, Android) - PullRequest
0 голосов
/ 11 января 2020

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';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...