1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

TouchEvents die in einem View beginnen in einem anderen aufgreifen

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von hefeweiz3n, 23.09.2011.

  1. hefeweiz3n, 23.09.2011 #1
    hefeweiz3n

    hefeweiz3n Threadstarter Neuer Benutzer

    Beiträge:
    1
    Erhaltene Danke:
    0
    Registriert seit:
    23.09.2011
    Phone:
    Nexus S
    Hallo. Folgende Situation:

    Ich habe Elemente in einem selbstgeschriebenen View die in einem anderen platziert werden sollen. Zur Zeit klickt der Nutzer dazu erst auf ein Element und danach in den zweiten Bereich wo er das Element dann verschieben kann. Erstes Nutzerfeedback hat dann ergeben das das nicht intuitiv ist (Oh Wunder :D) und es natürlich besser ist wenn man das per Drag and Drop machen kann.

    Aktuell ist es halt so das jeder View in der onTouchEvent() Methode die Touchevents abfängt und behandelt. Die Liste mit den Elementen handhabt also nur ACTION_DOWN-Events, der Platzierungsview auch MOVE und UP. Jetzt ist es wohl so das Android die Events immer zuerst an den View sendet in dem das erste Event stattgefunden hat. Danach wird es, wenn es nicht behandelt wird, nach oben propagiert (Dort sehe ich sie auch). Von dort wird es dann aber nicht an den entsprechenden View weitergegeben der sich nun unter dem Finger befindet. Wenn ich von der Eltern-Activity dann versuche das Event per Hand weiterzuleiten sind natürlich die Koordinaten falsch. Den Focus auf den entsprechenden View zu setze funktioniert auch nicht.

    So, nach dem Geplänkel jetzt zur Frage: Wie bekomme ich es hin das ich das Event an den View weitergeben kann (mit den richtigen, an den View angepassten Koordinaten). In Qt4 gibt es entsprechende Funktionen die Globale Koordinaten in Widget-Lokale übersetzen und umgekehrt, gibt es sowas für Android auch? Kann ich das Event überhaupt anpassen oder muss ich das Handling doch komplett ganz in der Activity programmieren?

    Ein Testprojekt das die Problematik zeigt hängt an.
     

    Anhänge:

Diese Seite empfehlen