ViewPagerTransforms
Library containing common animations needed for transforming ViewPager scrolling on Android v13+. This library is a rewrite of the JazzyViewPager library and owes credit of the animation concepts directly to its source. The purpose of this rewrite is to provide an easier to use and extend implementation of ViewPager animations.
Getting Started (Gradle / Android Studio)
Add gradle dependency to your application.
implementation 'com.ToxicBakery.viewpager.transforms:view-pager-transforms:2.0.24'
After configuration, instantiate the transformer animation you wish to use and set it as the [page transformer](http://developer.android.com/reference/android/support/v4/view/ViewPager.html#setPageTransformer(boolean, android.support.v4.view.ViewPager.PageTransformer)).
// Reference (or instantiate) a ViewPager instance and apply a transformer
pager = (ViewPager) findViewById(R.id.container);
pager.setAdapter(mAdapter);
pager.setPageTransformer(true, new RotateUpTransformer());
Creating Custom Transforms
All ViewPagerTransform implementations extend ABaseTransformer providing useful hooks improving readability of animations and basic functionality important when switching between animations. ABaseTransformer provides three lifecycle hooks and two flags for default handling of hiding offscreen fragments and mimicking the default paging functionality of the ViewPager.
- onPreTransform(View view, float position)
- Default implementation resets the animation state of the fragment to defaults that will place it on the screen if its position permits.
- onTransform(View view, float position)
- Animations should perform all or most of their work inside this callback.
- onPostTransform(View view, float position)
- Default implementation does nothing. This provides a logical location for any additional work to be done that is not directly related to the animation.
Building
This project is built with Gradle using the Gradle Wrapper script.
./gradlew build
Creating Local Versions
You can modify this project and create local packages with via the maven publish plugin used in the build scripts.
./gradlew publishToMavenLocal