2010-11-23 46 views
2

J'essaie d'implémenter une fonctionnalité glisser-déposer dans une application Android. La partie glisser est terminée, la seule chose qui reste à faire est de savoir sur quelle vue la vue traînée sera droppée. Voici la fonction OnTouch de mon point de vue traîné:Comment gérer onTouch Événement d'un enfant dans le parent?

public boolean onTouch(View v, MotionEvent event) { 
    // Is the event inside of this view? 
    if (!mRegion.contains((int) event.getX(), (int) event.getY())) { 
    return false; 
    } 

    if (event.getAction() == MotionEvent.ACTION_DOWN) { 
    ... 
    System.out.println("**** IMAGE DRAG STARTED!"); 
    return true; 
    } else if (event.getAction() == MotionEvent.ACTION_MOVE) { 
         ... 
    this.invalidate(); 
    return true; 
    } else if (event.getAction() == MotionEvent.ACTION_UP){ 
    System.out.println("**** ICON DRAG ENDED!"); 
    return false; 
    } else { 
    return true; 
    } 
} 

Donc, fondamentalement, tous les événements de mouvement sont traités à l'exception du ACTION_UP (le moment où la vue est realeased). La question est de savoir comment faire en sorte que cet événement soit appelé dans le parent (le passer au parent onTouch handler), afin que je puisse savoir où il a été abandonné. J'ai implémenté la gestion onTouch dans le parent mais aucun événement n'est détecté.

Merci, Levi

+0

titre ..nice ... –

Répondre

3

Override onInterceptTouchEvent (événement MotionEvent)

+0

Merci, ça marche! –

+0

Mon plaisir. Jetez un oeil à GestureDetector et VelocityTracker. Vous pouvez les trouver utiles. – techiServices