Spanish Deslizar entre pantallas con movimientos de dedo

Edu Portu

Member
Licensed User
Longtime User
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:

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
 
Top