Is GestureOverlayView implemented in B4A? (to catch swipe gesture on screen)

NFOBoy

Active Member
Licensed User
Longtime User
Looking through the forum, I have seen a few references to programmers wanting to do Sliding Panels, while capturing if the user starts the slide on something besides the Panel. (or for any other reason, wanting to capture a gesture within the current activity, that starts somewhere other than the panel)

(other forum topics related or similiar)
http://www.b4x.com/forum/basic4android-updates-questions/11227-catching-swipe-gesture.html
http://www.b4x.com/forum/basic4andr...estures-buttons-labels-problem.html#post51557


Reading the link below, it appears this functionality is built into the API?
http://developer.android.com/resources/articles/gestures.html
If so, how do I enable/use/code this functionality?

If not, I have found a workaround. I use the Gestures.SetOnTouchListener on all current Views (my buttons, my labels, etc...)

But, since I still want to parse when a click event comes through, I have to figure out what the user intent is based on length of time (short and no movement to be considered a click, medium with no movement to be a long_press), then pass the user-intent and call the button_click event, but as far as I can tell, I can't pass the Sender remotely? I can write the code such that I call a button_click event with some other variable.. but wow does this seem anti-intuitive to what I want, which is just to catch swipe events, no matter where they occur, and pass click events to the buttons/views below.

I've tried setting up a transparent panel on top, but can not figure out a method to not-consume the event, if it is just a click. (so that it passes it to a button underneath)

Anyone ever figure this out?
Would the GestureOverlayView even work? (it appears that it would)

Ross
 

LucaMs

Expert
Licensed User
Longtime User


In the description of the library:

"It works with any view.

Note: you have to create an instance of GestureDetector (with Dim) for each view you want to bind to the detector with SetOnGestureListener."


any view... each view... not "screen" (activity)... it does the same as add onTouch on each view (but better).
 
Upvote 0
Cookies are required to use this site. You must accept them to continue using the site. Learn more…