#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(),
)