Awesome
SmartSwipe
library | smart-swipe | smart-swipe-support | smart-swipe-x |
---|---|---|---|
latest version |
A smart swipe android library helps you make View (and Activity) swipes easier.
In addition, to facilitate the use, SmartSwipe
encapsulates the following tool classes:
- SmartSwipeBack: <br/>All Activities slide back in an easy way via a single line code. <br/>without any super activity class; without translucent theme; without any code into BaseActivity; without any code into xml layout files;
- SmartSwipeRefresh: <br/>With a single line code to achieve swipe refresh and load more. Compatible with vertical and horizontal
- SwipeConsumerExclusiveGroup: <br/>Manages a set of exclusive
SwipeConsumer
s, can only open one at a time.
Demo
Stretch<br/>StretchConsumer | Space<br/>SpaceConsumer | Translucent Sliding<br/>TranslucentSlidingConsumer |
---|---|---|
<img width="200" src="images/stretchConsumer.gif"> | <img width="200" src="images/spaceConsumer.gif"> | <img width="200" src="images/translucentSlidingConsumer.gif"> |
Drawer above<br/>DrawerConsumer | Drawer behind<br/>(factor is settable)<br/>SlidingConsumer | |
<img width="200" src="images/drawerConsumer.gif"> | <img width="200" src="images/slidingConsumer.gif"> | |
Doors Open<br/>DoorConsumer | Shutters Open<br/>ShuttersConsumer | |
<img width="200" src="images/doorConsumer.gif"> | <img width="200" src="images/shuttersConsumer.gif"> |
Create a cover
Doors open | Shutters Open | Drawer Open |
---|---|---|
<img width="200" src="images/cover_door.gif"> | <img width="200" src="images/cover_shutters.gif"> | <img width="200" src="images/cover_drawer.gif"> |
Activity sliding back
All Activities slide back in an easy way via a single line code.
- without any super activity class;
- without translucent theme;
- without any code into BaseActivity;
- without any code into xml layout files;
Back via release velocity<br/>StayConsumer | Translucent Sliding Back<br/>ActivitySlidingBackConsumer | Back with bezier<br/>BezierBackConsumer |
---|---|---|
<img width="200" src="images/stayConsumer.gif"> | <img width="200" src="images/activitySlidingBackConsumer.gif"> | <img width="200" src="images/bezierBackConsumer.gif"> |
Like doors open<br/>ActivityDoorBackConsumer | Like shutters open<br/>ActivityShuttersBackConsumer | <font color="blue">Global Usage</font><br/>SmartSwipeBack |
<img width="200" src="images/activityDoorBackConsumer.gif"> | <img width="200" src="images/activityShuttersBackConsumer.gif"> | <img width="200" src="images/swipeBack.gif"> |
Usage
First add SmartSwipe
to your project
implementation 'com.billy.android:smart-swipe:latestVersion'
Nested scrolling only compatible after android api above 21(android 5.0) with core library(smart-swipe)
Add extension library to compat for android support library or androidX like below:
implementation 'com.billy.android:smart-swipe:latestVersion'
//compat for android support library
implementation 'com.billy.android:smart-swipe-support:latestVersion'
or
implementation 'com.billy.android:smart-swipe:latestVersion'
//compat for android x
implementation 'com.billy.android:smart-swipe-x:latestVersion'
SmartSwipe
can be used by chain programming within a single line code. The usage of API looks like follow:
SmartSwipe.wrap(...) //view or Activity
.addConsumer(...) //add a SwipeConsumer
.enableDirection(...) //Specifies which side of the slide the SwipeConsumer will consumes
.setXxx(...) //[optional] some other Settings
.addListener(...); //[optional] add listener(s) to the SwipeConsumer
Sample code:
// When view cannot scroll vertically (or scrolling to the top/bottom),
// if continue to drag, the UI will show elastic stretching effect,
// and smooth recovery after release
SmartSwipe.wrap(view)
.addConsumer(new StretchConsumer())
.enableVertical();
Add more than one 'SwipeConsumer' to the same View. Such as:
SmartSwipe.wrap(view)
.addConsumer(new StretchConsumer())
.enableVertical() //Stretch effect at directions: top and bottom
.addConsumer(new SpaceConsumer())
.enableHorizontal() //Space effect at directions: left and right
;
Click here for more details about SwipeConsumers
Activity slides back with a single line of code globally
SmartSwipeBack.activityBezierBack(application, null); //bezier shows while swiping
SmartSwipeBack.activityStayBack(application, null); //Back via release velocity
SmartSwipeBack.activitySlidingBack(application, null); //sliding with pre-activity relative moves
SmartSwipeBack.activityDoorBack(application, null); //finish activity like doors open
SmartSwipeBack.activityShuttersBack(application, null); //finish activity like shutters open
Click here For more Details
Add swipe refresh to a View via a single line code
//the second parameter within xxxMode:
// false: works vertically(swipe down to refresh and swipe up to load more)
// true: works horizontally(swipe right to refresh and swipe right to load more)
SmartSwipeRefresh.drawerMode(view, false).setDataLoader(loader);
SmartSwipeRefresh.behindMode(view, false).setDataLoader(loader);
SmartSwipeRefresh.scaleMode(view, false).setDataLoader(loader);
SmartSwipeRefresh.translateMode(view, false).setDataLoader(loader);
You can use default headers and footers, and you can also customize your own.
The refresh extension library(smart-swipe-refresh-ext
: ) will include some fancy third-party headers and footers.
here is the first one(Based on Ifxcyr/ArrowDrawable):
Click here For more Details
SmartSwipe
features:
- support for 4 directions swipe( left/top/right/bottom)
- supports adding multiple
SwipeConsumer
s to the same View(/Activity) - supports nested usage
- support to use for list items in ListView and RecyclerView and the list itself
- compat for NestedScroll (android support library and androidX)
- A dozen of built-in
SwipeConsumer
s effects