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

ontouch und onclick gemeinsam

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Skolleus, 18.03.2011.

  1. Skolleus, 18.03.2011 #1
    Skolleus

    Skolleus Threadstarter Neuer Benutzer

    Beiträge:
    16
    Erhaltene Danke:
    0
    Registriert seit:
    21.02.2011
    Hi Leute,

    ich versuche gerade aus dem Display des Galaxy Tabs eine Art Touchpad zu machen.
    Problemlos war die Oberfläche selbst mit Übertragung der Koordinaten, der Menge der Pointer (Finger) usw.
    Jetzt möchte ich aber auch 3 Buttons auf dem Display anzeigen.
    Dabei soll da natürlich in deren Bereich kein touchevent passieren sondern ein clickevent.
    In meiner Main.xml hab ich dafür ein AbsoluteLayout,
    darin 3 Buttons im oberen Bereich und ein weiteres AbsoluteLayout (id: touchSurface) darunter.
    Der OnTouchListener ist auf touchSurface registriert und da die nicht im Bereich der Buttons liegt wird kein touchevent ausgegführt wenn ich auf einen Button klicke. Stattdessen sind da 3 Clickevents registriert die auch auslösen.

    Meine 3 Probleme:
    1. Wenn ich meinen Finger über die touchSurface in Richtung Buttons bewege, wird auch über den Buttons ein touchEvent (Action_Move) ausgeführt.
    2. Wenn ich meinen Finger auf der touchSurface halte, wird mit einem 2. Finger auf einem der Buttons kein clickEvent ausgelöst sondern er wird als 2. Pointer in der touchSurface erkannt.
    (Kurz: Problem 1+2) Der OnTouchListener ist nicht auf die touchSurface begrenzt wenn innerhalb der touchSurface ein touchEvent ausgelöst wird.
    3. Der clickEvent wird nicht beim Klicken sondern beim Loslassen abgefeuert.

    Gibts dafür eine einfache Lösung?
    Muss irgendwas mit der Reihenfolge der Eventverarbeitung zu tun haben. Hab schon versucht den Ontouchlistener auf das unterste AbsoluteLayout zu registrieren und die Buttons in einem eigenen AbsoluteLayout darüber.
    Hat auch nicht geholfen.


    edit: Scheinbar liegt es daran, dass immer zuerst der OnTouchListener feuert und erst danach der OnClickListener.
     
    Zuletzt bearbeitet: 18.03.2011

Diese Seite empfehlen