2011-05-09 14 views
9

पर टचएवेंट पर ACTION_MOVE/UP को नहीं देख सकता है, मैंने एक रिलेवेटिवआउट में श्रोता पंजीकृत किया है, नीचे देखें। मैं,एंड्रॉइड: एक रिलेवेटिवआउट

mOnTouchListener = new OnTouchListener() { 
     @Override 
     public boolean onTouch(View view, MotionEvent motionEvent) { 
      final int action = motionEvent.getAction(); 
      boolean ret = false; 

      switch (action) { 
      case MotionEvent.ACTION_DOWN: 
       ret = doSth(motionEvent); 
       break; 
      case MotionEvent.ACTION_MOVE: 
       ret = doSth(motionEvent); 
       break; 
      case MotionEvent.ACTION_UP: 
       ret = doSth(motionEvent); 
       break; 
      } 

      return ret;  // returning false got me none of MOVE/UP events right here 
     } 
    }; 

हालांकि, कुछ कस्टम घटना से निपटने जोड़ना चाहते हैं मैं नहीं जब तक सच लौट आए किसी भी ऊपर ले जाएं घटनाओं प्राप्त कर सकते हैं /।

एक और प्रयास, मैंने चेकबॉक्स में एक ही श्रोता पंजीकृत किया, सब कुछ ठीक हो गया।
क्या व्यू ग्रुप और विजेट के बीच कोई अंतर है? डिजाइन उद्देश्य?

उत्तर

24

"हालांकि, मुझे कोई भी मूव/यूपी घटनाएं तब तक नहीं मिल सकती जब तक कि सत्य वापस नहीं आ जाता।"

आपने अपना खुद का प्रश्न उत्तर दिया है। यदि आप true वापस नहीं करते हैं, यह दर्शाता है कि आप इस बारे में परवाह करते हैं और ईवेंट को प्रबंधित कर रहे हैं, तो सिस्टम आपको बाद की घटनाएं नहीं भेजेगा, क्योंकि आपने सिस्टम को बताया है जिस पर आपको इसकी परवाह नहीं है। यदि आपको टच इवेंट के पूरे जीवन चक्र की निगरानी करने की आवश्यकता है, तो आपको हमेशा true वापस करने की आवश्यकता है।

+3

ठीक है, मुझे याद है कि एसडीके ने कहा था कि "सच है अगर श्रोता ने घटना का उपभोग किया है, अन्यथा झूठा है", इसलिए मैंने सोचा कि "उपभोग" किसी भी तरह से "देखभाल" से अलग था। – fifth

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