簡體   English   中英

React Native - onTouchStart vs PanResponder,每秒進行多次觸摸

[英]React Native - onTouchStart vs PanResponder for multiple touches per second

我正在使用React Native開發一個應用程序,它必須盡快響應輕擊手勢,因為可以在一秒鍾內觸發多個輕擊事件。 無需雙擊或移動手勢,但需要同時處理水龍頭。 我一直在測試onTouchStartPanResponder | onPanResponderGrant PanResponder | onPanResponderGrant並看到:

  • 兩次點擊同時觸發onTouchStart兩次,而onPanResponderGrant只調用一次。
  • onPanResponderMove被甚至被解雇時,我有onMoveShouldSetPanResponderfalse ,並且它的發射很多時候兩個水龍頭是同時發生,或當有第二個幾個水龍頭。
  • 當在一秒鍾內完成幾次點擊時, onTouchStart工作正常,但onPanResponderGrant的觸發次數較少。

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

現在的問題是: 即使React Native文檔建議使用PanResponder進行多點觸控手勢,我是否應該使用onTouchStart

PanResponder將多個觸摸協調為一個手勢。 它使單點觸控手勢能夠適應額外的觸摸,並可用於識別簡單的多點觸控手勢。

或者我錯過了一些PanResponder

編輯:

此外, gestureState.numberActiveTouches始終為1,兩次點擊同時發生的事件。 我認為這可以解決問題。

根據PanResponder的定義,我理解它用於解釋多點觸控手勢並渲染1個動作。 就像我在圖像上用2個手指點擊一樣,我可以將圖像復制到剪貼板。

雖然你似乎想要一個不同的行為:我用1個鼓鈸上的2個手指點擊,你想得到2個聲音。 這就好像你將你的鼓鑔分成無限的按鈕,無論你做什么,每一個水龍頭,你都會得到一個單獨的聲音。

然后你不想使用PanResponder,因為它會嘗試將一堆動作解釋成單個聲音,而你希望每個動作都能產生一個單獨的聲音。 而onTouchStart只需完成工作。 所以你可能正在用它做正確的事!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM