2011-05-31 11 views
13

मेरे पास वेबव्यू के लिए टच श्रोता है, लेकिन इसका वेबव्यू की कार्यक्षमता पर बुरा असर पड़ता है, इसलिए मुझे आश्चर्य है कि शुरुआती बातचीत के बाद टच श्रोता को हटाने के लिए वैसे भी है?क्या ऑब्जेक्ट ऑब्जेक्ट से ऑन टच लिस्टनर को हटाने के लिए वैसे भी है?

उत्तर

14

तो तुम गतिविधि में आप अपने ओवरराइड onTouchListener स्थापित करेगा:

  mWebView.setOnTouchListener(new View.OnTouchListener() { 

      @Override 
      public boolean onTouch(View v, MotionEvent event) { 
       v.setOnTouchListener(mWebView.mOnTouchListener); 
       return false; 
      } 
     }); 

और आप एक नया वर्ग बनाने के लिए, WebView का विस्तार होगा। और इसके भीतर आप एक ऑन टचलिस्टर को परिभाषित करेंगे।

public final OnTouchListener mOnTouchListener = new OnTouchListener() { 
    @Override 
    public boolean onTouch(View v, MotionEvent rawEvent) { 
     return false; 
    } 
}; 

ऑनटचलिस्टर को शून्य पर सेट करना इसे डिफ़ॉल्ट परिभाषा में रीसेट नहीं करता है। आपको अभी भी एक वास्तविक श्रोता प्रदान करना होगा।

+0

बहुत अच्छा विचार है, लेकिन क्या आप विस्तार कर सकते हैं कि नई कक्षा 'mWebView' के साथ कैसे इंटरैक्ट करती है? MWebView mnnouchListener कैसे मिलता है? धन्यवाद! – CQM

+0

mWebView एक मानक एंड्रॉइड वेबव्यू नियंत्रण नहीं है। इसके बजाए, यह आपके द्वारा बनाए गए एक कस्टम नियंत्रण है, जो कि वेबव्यू से प्राप्त एक नई कक्षा है। – Pete

+0

बीटीडब्ल्यू, यदि आप 'व्यू 'जैसे' वेब व्यू 'को विस्तारित कर रहे हैं, तो आपको टच श्रोता को लागू करने की आवश्यकता नहीं है। व्यू में एक अंतर्निहित विधि है जिसे आप इसके बजाय कार्यान्वित करते हैं: 'बूलियन ऑन टचवेन्ट (मोशनवेवेंट इवेंट) {...} '। टच श्रोता बनाने का लाभ यह है कि आप इसे ** किसी अन्य कक्षा ** में कर सकते हैं, जैसे कि एक टुकड़ा या गतिविधि, जिसे आप पहले ही परिभाषित कर रहे हैं। तो आपको एक और नई कक्षा बनाने की ज़रूरत नहीं है। – ToolmakerSteve

23
webView.setOnTouchListener(null); 
+0

क्या यह टच श्रोता को हटा देता है ताकि कार्यक्षमता सामान्य हो जाए, या क्या यह श्रोता को शून्य पर सेट कर देता है जिसका अर्थ है कि वेबव्यू स्पर्श होने पर कुछ भी नहीं करेगा? – NotACleverMan

+0

सहायता के लिए धन्यवाद, लेकिन मैंने अभी इसका परीक्षण किया है और मुझे अभी भी वही कार्यक्षमता समस्याएं हैं। (उदाहरण के लिए, ज़ूम करने के लिए दो बार टैप काम नहीं करता है) – NotACleverMan

+0

टचलिस्टर पर कस्टम बनाने और झूठी वापसी के बारे में कैसे ?? – Hein

4

मैं ऑनलाइन सहायता की तलाश में था और इस पोस्ट को मिला। जब मैं

myView.setOnTouchListener(null); 

किया मेरी MyView स्पर्श करने के लिए जवाब बंद कर दिया।