2017-08-03 64 views
10

我正在開發一個應用程序,它需要儘快響應輕擊手勢,因爲可以在一秒鐘內觸發多個輕擊事件。無需雙擊或移動手勢,但需要照顧同時點擊。我一直在測試既onTouchStartPanResponder | onPanResponderGrant及看出:React Native - onTouchStart vs PanResponder每秒觸摸多次

  • onTouchStart當兩個水龍頭同時被觸發兩次,而onPanResponderGrant被稱爲一次。
  • onPanResponderMove即使當我有onMoveShouldSetPanResponderfalse時也會被解僱,並且當兩個水龍頭同時發生時,或者每秒有幾次水龍頭時,它會被多次發射。
  • 當幾秒鐘完成一次,onTouchStart工作正常,但onPanResponderGrant被激發更少的時間。

基於以上原因,我認爲我最好使用onTouchStart

現在的問題是:我應該使用onTouchStart即使React Native docs建議使用PanResponder多點觸摸手勢?

PanResponder將幾次觸摸調和成一個手勢。它使單點觸摸手勢具有彈性,可用於識別簡單的多點觸摸手勢。

或者我錯過了PanResponder

編輯:

此外,gestureState.numberActiveTouches始終爲1,事件當兩個水龍頭同時的。我認爲這可以做到這一點。

+0

這是用於滾動視圖嗎? – sooper

+1

@sooper - 不,這是一些鼓。 – Manolo

+0

嗨@Manolo,我的回答令人滿意嗎?如果是的話請接受,否則讓我們知道有什麼缺失:)。 (編輯:啊我的壞,獎金是取代檢查圖標,我想) – Jeremie

回答

9

根據PanResponder的定義,我明白它用於解釋多點觸控手勢並呈現1個動作。 就像我在圖像上點擊2個手指,我可以將圖像複製到剪貼板。雖然看起來你想要一個不同的行爲:我用2個手指敲擊1鼓cy,你想得到2個聲音。 就好像你將你的鼓cy分爲無窮無盡的按鈕,無論你做什麼,對於每一個水龍頭,你都會得到一個單獨的聲音。

然後,您不想使用PanResponder,因爲它會試圖將一堆動作解釋爲單個聲音,而您希望每個動作都能生成單獨的聲音。 onTouchStart簡單地完成工作。所以你可能會用它做正確的事情!

相關問題