When your game needs to be aware of gestures like Drag, Zoom, etc on multiple platform, you may need to add the MultiTouchDragDetector mixin to your FlameGame Component.

The drawback is that DragCallback on other Components won’t work anymore because the events are intercepted by the MultiTouchDragDetector.

While this may be resolved in an upcomming PR, there is a way to forward manually the events by adding a line of code :

class MyGame extends FlameGame with MultiTouchDragDetector {

  @override
  void onDragStart(int pointerId, DragStartInfo info) {
    // ignore: invalid_use_of_internal_member
    findByKey<MultiDragDispatcher>(const MultiDragDispatcherKey())?.handleDragStart(pointerId, info.raw);
  }

  @override
  void onDragUpdate(int pointerId, DragUpdateInfo info) {
    // ignore: invalid_use_of_internal_member
    findByKey<MultiDragDispatcher>(const MultiDragDispatcherKey())?.handleDragUpdate(pointerId, info.raw);
  }

  @override
  void onDragEnd(int pointerId, DragEndInfo info) {
    // ignore: invalid_use_of_internal_member
    findByKey<MultiDragDispatcher>(const MultiDragDispatcherKey())?.handleDragEnd(pointerId, info.raw);
  }

  @override
  void onDragCancel(int pointerId) {
    // ignore: invalid_use_of_internal_member
    findByKey<MultiDragDispatcher>(const MultiDragDispatcherKey())?.handleDragCancel(pointerId);
  }
}

Since the method used is internal to the library, you need to add a lint ignore.
You also can perform additionnal logic inside those DragEvents.