Как я могу игнорировать перетаскивание с помощью IgnorePointer?

#flutter #flutter-ignore-pointer

#flutter #flutter-игнорировать-указатель

Вопрос:

Я знаю, что мы можем игнорировать указатель с IgnorePointer помощью виджета, но как я могу игнорировать только определенное событие. например, VerticalDrag или tap ?

Ответ №1:

Если вы хотите игнорировать определенное событие, в вашем случае VerticalDrag для виджета Container , вам придется обернуть рассматриваемый виджет в GestureDetector

GestureDetectors всегда будет пытаться реагировать на события с ненулевыми обратными вызовами.

Итак, собрав все это вместе, простой фрагмент кода для достижения желаемого, вероятно, будет выглядеть так

 GestureDetector(
        // Ignores all this events

        onVerticalDragUpdate: (_) {},

        onVerticalDragDown: (_) {},

        onVerticalDragEnd: (_) {},

        onVerticalDragStart: (_) {},

        onVerticalDragCancel: () {},

        onTap: () {},

        // Does not ignore these events below

        onDoubleTap: () {
          print('Container was double tapped');
        },
        onLongPress: () {
          print('Container was long pressed');
        },

        child: Container(),
      )