2017-08-03 11 views
10

मैं प्रतिक्रियात्मक मूल के साथ एक ऐप विकसित कर रहा हूं जिसे जल्द से जल्द टैप जेस्चर का जवाब देना पड़ता है क्योंकि एक से अधिक टैप ईवेंट को दूसरे में निकाल दिया जा सकता है। डबल टैप या जेस्चर को स्थानांतरित करने की आवश्यकता नहीं है, लेकिन एक साथ नल की देखभाल करने की आवश्यकता है। मैं onTouchStart और PanResponder | onPanResponderGrant और देखा कि दोनों के साथ परीक्षण किया गया है:प्रतिक्रिया मूल - ऑन टचस्टार्ट बनाम पैन रेस्पॉन्डर प्रति सेकंड कई छूने के लिए

  • onTouchStart दो बार निकाल दिया जाता है जब दो नल एक साथ कर रहे हैं, जबकि onPanResponderGrant सिर्फ एक बार कहा जाता है।
  • onPanResponderMove तब भी निकाल दिया गया है जब मेरे पास onMoveShouldSetPanResponder से false है, और इसे दो बार निकाल दिया जाता है जब दो नल एक साथ होते हैं, या जब एक सेकंड में कई नलियां होती हैं।
  • जब एक दूसरे में कई नलियां होती हैं, onTouchStart ठीक काम करता है, लेकिन onPanResponderGrant कम समय निकाल दिया जाता है।

उपर्युक्त कारणों के आधार पर, मुझे लगता है कि मैं onTouchStart का बेहतर उपयोग करता हूं।

अब सवाल यह है: मैं onTouchStart का उपयोग करना चाहिए, जब भी React Native docs बहु स्पर्श इशारों के लिए PanResponder उपयोग करने के लिए सुझाव है?

PanResponder एक संकेत में कई स्पर्शों को दोबारा जोड़ता है। यह सिंगल-टच जेस्चर को अतिरिक्त स्पर्शों के लिए लचीला बनाता है, और इसका उपयोग सरल मल्टी-टच जेस्चर को पहचानने के लिए किया जा सकता है।

या क्या मुझे PanResponder का कुछ याद आ रहा है?

संपादित करें:

इसके अलावा, gestureState.numberActiveTouches हमेशा होता है 1, घटना है जब दो नल एक साथ कर रहे हैं। मैंने सोचा कि यह चाल कर सकता है।

+0

क्या यह स्क्रॉल व्यू के लिए है? – sooper

+1

@sooper - नहीं, यह कुछ ड्रम के लिए है। – Manolo

+0

हाय @ मॅनोलो, मेरा जवाब संतोषजनक है? अगर ऐसा है तो कृपया इसे स्वीकार करें, अन्यथा हमें बताएं कि क्या गुम है :)। (संपादित करें: आह मेरे बुरे, बक्षीस मुझे लगता है कि चेक आइकन को बदल रहा है) – Jeremie

उत्तर

9

PanResponder की परिभाषा से, मैं समझता हूं कि इसका उपयोग मल्टी-टच इशारा की व्याख्या करने और 1 क्रिया प्रदान करने के लिए किया जाता है। जैसे कि मैं एक छवि पर 2 अंगुलियों के साथ टैप करता हूं और मैं क्लिपबोर्ड पर प्रतिलिपि बनाई गई छवि प्राप्त कर सकता हूं।

हालांकि ऐसा लगता है कि आप एक अलग व्यवहार चाहते हैं: मैं 1 ड्रम झांझ पर 2 अंगुलियों के साथ टैप करता हूं, आप 2 ध्वनियां प्राप्त करना चाहते हैं। ऐसा लगता है कि आप अपने ड्रम सिम्बल को बटनों की अनंतता में विभाजित कर रहे थे, और जो कुछ भी आप करते हैं, प्रत्येक टैप के लिए, आपको एक अलग ध्वनि मिल जाएगी।

फिर आप PanResponder का उपयोग नहीं करना चाहते हैं, क्योंकि यह एक ही ध्वनि में आंदोलनों के समूह की व्याख्या करने की कोशिश करने जा रहा है, जबकि आप प्रत्येक आंदोलन को एक अलग ध्वनि उत्पन्न करना चाहते हैं। और टचस्टार्ट पर बस काम पूरा हो जाता है। तो आप शायद इसके साथ सही काम कर रहे हैं!

संबंधित मुद्दे