2011-12-03 7 views
8

से ACTION_DOWN क्यों मिलता है मैं अपनी कक्षा को व्यू से बढ़ाता हूं। और मैं टचवेन्ट फ़ंक्शन पर ओवरराइड करता हूं। लेकिन, मैं केवल ACTION_DOWN ईवेंट प्राप्त कर सकता हूं। कोई ACTION_UP या ACTION_MOVE नहीं। मुझे घटनाओं को पाने के लिए मुझे क्या करना चाहिए?मुझे हमेशा टचवेन्ट

मैं केवल टचएवेंट और ऑन ड्रा फंक्शन पर ओवरराइड करता हूं। और वहाँ आवेदन

@Override 
public boolean onTouchEvent(MotionEvent event) { 
    System.out.println("event:"+event.getAction()); 
    return super.onTouchEvent(event); 
} 
+1

कृपया अपना कोड दिखाएं। अन्यथा हम बस अनुमान लगा सकते हैं। धन्यवाद! –

उत्तर

28

संभवतः आप super घटना लौटने के बजाय true लौटना ही होगा। इसका मतलब है कि आपने उस घटना को संभाला है, और इस प्रकार आप अगली प्राप्त कर सकते हैं।

1

काम पर हमारे पास LinearLayout था जिसे teaser कहा गया था जिसमें समान समस्याएं थीं (यह थोड़ी देर हो चुकी है)। वैसे भी, हमने पाया कि यह "हैक" touch से कुछ अतिरिक्त प्रतिक्रिया प्राप्त करने में मदद करता है।

teaser.setOnTouchListener(new OnTouchListener() { 
    public boolean onTouch(View v, MotionEvent motionEvent) { 
     TransitionDrawable transition = (TransitionDrawable) v.getBackground(); 

     switch(motionEvent.getAction()) { 
      case MotionEvent.ACTION_DOWN: 
       if(transition != null) transition.startTransition(250); 
       break; 
      case MotionEvent.ACTION_UP: 
       loadArticle(position); 
      case MotionEvent.ACTION_CANCEL: 
       if(transition != null) transition.reverseTransition(0); 
       break; 
     } 
     return false; 
    } 
}); 

// Has to be here for the touch to work properly. 
teaser.setOnClickListener(null); // <-- the important part for you 

मैं ईमानदारी से आपको कोई कविता या कारण नहीं दे सका, लेकिन उम्मीद है कि इससे मदद मिलती है।

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

  • कोई संबंधित समस्या नहीं^_^