Определить жест двумя пальцами

1

У меня есть обработчик PanGesture, который вложен в ScrollView, поэтому он должен обрабатывать только жесты с двумя пальцами, но пусть родитель обрабатывает все остальные жесты.

Из чтения документов, onStartShouldSetPanResponder будет правильным местом для определения, следует ли обрабатывать жест, но, к сожалению, gestureState.numberActiveTouches всегда 1, поэтому я не могу сказать, будет ли пользователь gestureState.numberActiveTouches, зажимать или прокручивать.

Кроме того, это не так, как этот метод будет вызываться два раза с небольшой задержкой, если я коснусь экрана двумя пальцами и начну зажиматься, поэтому я действительно не знаю, как обнаружить этот случай.

Любой совет?

редактировать

View.onTouchStart будет стрелять дважды подряд двумя пальцами, поэтому я могу легко обнаружить предстоящий жест щепотки и установить флаг для PanResponder. Однако ответчик onStartShouldSetPanResponder всегда срабатывает, прежде чем я получу эти два события, объявляю ли я onTouchStart на вложенном представлении, родительском представлении или представлении, которое принадлежит ParentResponder, поэтому я слишком поздно здесь.

  • 0
    найти решение?
Теги:
react-native
gesture

1 ответ

0

Насколько я знаю, onStartShouldSetPanResponder должен возвращать только true или false. Таким образом, с

...
onStartShouldSetPanResponder: () => true
...

вы говорите ответчику о том, чтобы обрабатывать штрихи и

...
onMoveShouldSetPanResponder: () => true
...

для обработки движений и перетаскивания жестов. Затем вы можете использовать

...
onPanResponderGrant: (event, gesture) => {

}
onPanResponderStart: (event, gesture) => {
    let activeTouches = gesture.numberActiveTouches;
}
...

чтобы получить ваши активные штрихи. Если у вас возникли проблемы с получением правильного ответчика для обработки ввода во вложенной ситуации, попробуйте взглянуть на onStartShouldSetPanResponderCapture внизу документации системы onStartShouldSetPanResponderCapture responder (https://facebook.github.io/react-native/docs/gesture-responder -system.html)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню