Hace tiempo use una rutina de Erel para poder detectar cuando el usuario hace un movimiento como de deslizar el dedo lateralmente para pasar pantallas:
El tema es que si el panel de fondo (donde se ejecuta el _TOUCH) esta lleno de teclas, labels, editext, etc... no funciona.
Como esta es una rutina bastante antigua (2012), no se si ahora existe una manera mas eficaz de hacer esto mismo
Muchas gracias
B4X:
Sub Process_Globals
Dim MOVEMENT_THRESHOLD As Int
MOVEMENT_THRESHOLD = 100dip
End Sub
Sub Globals
Dim Panel1 As Panel
Dim StartX As Int
End Sub
Sub Activity_Create(FirstTime As Boolean)
Panel1.Initialize("Panel1")
Activity.AddView(Panel1, 0, 0, 100%x, 100%y)
End Sub
Sub Panel1_Touch (Action As Int, X As Float, Y As Float) As Boolean 'Return True to consume the event
Select Action
Case Activity.ACTION_DOWN
StartX = X
Case Activity.ACTION_UP
If Abs(X - StartX) > MOVEMENT_THRESHOLD Then
Swipe(X < StartX)
End If
End Select
Return True
End Sub
Sub Swipe(Left As Boolean)
If Left Then Msgbox("Left", "") Else Msgbox("Right", "")
End Sub
El tema es que si el panel de fondo (donde se ejecuta el _TOUCH) esta lleno de teclas, labels, editext, etc... no funciona.
Como esta es una rutina bastante antigua (2012), no se si ahora existe una manera mas eficaz de hacer esto mismo
Muchas gracias