Initial Swipe Detector project was created on 24th of December 2014 on GitHub, so more than one year ago. I also wrote an article about that on my blog. I needed that to detect moment when user is swiping horizontally, to block vertical scroll on the
ListView while deleting item with “swipe to delete” functionality. This gives better UX and apps from Google works in the same way. Mentioned project was just a simple proof of concept showing how can we detect whether user is swiping on the screen of mobile device and in which direction. Recently, I thought that it would be cool if we had a separate generic library to do the same thing. It would be even cooler if this library will provide RxJava Observable to handle such events in a reactive way. That’s why I’ve decided to take this project, extract generic code to library and write an Observable wrapping listener, which handles swipe events. Please, take a look at the outcome of that work.
New library is called swipe. If we want to use it, we need to add proper dependencies to our
Next, we need to create Swipe attribute in our Activity:
We also need to remember to call
We need to perform things described above both for listener and RxJava Observable.
If we are not familiar with RxJava, we can handle swipe events in an imperative way with listener:
If we want to use the power of RxJava and code our app in a reactive style, we need to add
Now, we can subscribe an Observable:
Please note, there’s much less code than in the case of listener.
We need to remember to unsubscribe our Observable, when it’s no longer needed:
That’s it! I hope it will help you to detect and handle swipe events in your apps.
Source code of the library is available on GitHub: https://github.com/pwittchen/swipe.