ich habe ein Panel auf dem mehrere Labels platziert sind. Mit dem Wischen von links nach rechts oder umgekehrt wird der Inhalt der Labels geändert. Das hat bis jetzt auch gut geklappt. Aber nun nutze ich von den Labels das Click-Event. Leider funktioniert jetzt das Wischen nicht mehr, wenn der Anfangspunkt auf einem Label liegt. Hier mal der Code für das Wischen (aus einem gepostetem Beispiel):
B4X:
Sub Panel1_Touch (Action As Int, X As Float, Y As Float)
Select Action
Case Activity.ACTION_DOWN
StartX = X
StartY = Y
Case Activity.ACTION_UP
If Abs(Y - StartY) > 20%y Then Return
If X - StartX > 20 Then 'von links nach rechts wischen
DatenEintragen
Else If StartX - X > 20 Then 'von rechts nach links wischen
DatenEintragen
End If
End Select
End Sub
Das Click-Event habe ich zu Testzwecken erst einmal so programmiert:
B4X:
Sub lbl_click
Dim l As Label
l = Sender
Msgbox(l,"Test")
End Sub
Wie mache ich das nun am Besten, dass das Wischen und das Click-Event funktioniert?
Ich befürchte dass Ihr die Click Events in den Labels oder Buttons vergessen müsst denn diese 'konsumieren' das Panel_Touch Event !.
Ihr könnt aber Alles im Panel_Touch Event behandeln.
Ihr könnt in Action_DOWN prüfen ob die Koordinaten in einem Label oder Button liegen, eine Variable aktivieren und in Action_UP prüfen ob die Koordinaten noch im Label oder Button sind und danach entsprechend zu handeln.
Ich verwende ein Panel mit 6 Buttons, die durch das wischen von oben nach unten auf 12 Buttons erweitert werden sollten.
Am Anfang ist ein kleines Panel sichtbar, wenn man von oben nach unten über das Panel wischt wir ein größeres Panel mit 12 Buttons sichtbar.
wenn man auf einen Button klickt wird ein Code ausgeführt und das große Panel wird wieder durch das Kleine ersetzt.
Das große Panel sollte auch durch wischen von unten nach oben durch das kleine Panel ersetzt werden.
Es ist machbar mit durchsichtigen Panels die über den original Panels liegen und Alles in den Touch Events dieser Panels behandeln.
Beiliegen ein kleines Testprogramm.
Hallo Klaus,
darauf wäre ich selber nie gekommen,
Panel_Touch Event und Buttons funktionieren einwandfrei,
und dann noch ein fertiges Testprogramm dazu.
Du bist echt genial und hilfsbereit - Vielen Dank!
PS: Ich habe noch nach Deiner Methode ein LongClick event für die Buttons hinzugefügt und bei Button_Down wird der Button DarkGray.