
Contents
InfiniteCycleViewPager
Infinite cycle ViewPager with two-way orientation and interactive effect.
U can check the sample app here.
[block]7[/block]Warn
1 2 3 4 5 6 | This library is not more supported. If you want to add new feature or fix a bug, grab source code and do it. If you think your fix or feature would be useful to other developers, I can add link of your repository to this README file. Thank you for using our libraries. |
[block]8[/block]Download
You can download a .aar
from GitHub’s releases page.
Or use Gradle:
1 | compile 'com.github.devlight:infinitecycleviewpager:1.0.2' |
Or Maven:
1 2 3 4 5 6 | <dependency> <groupId>com.github.devlight</groupId> <artifactId>infinitecycleviewpager</artifactId> <version>1.0.2</version> <type>pom</type> </dependency> |
Or Ivy:
1 2 3 | <dependency org='com.github.devlight' name='infinitecycleviewpager' rev='1.0.2'> <artifact name='$AID' ext='pom'></artifact> </dependency> |
[block]10[/block]Android SDK Version
InfiniteCycleViewPager
requires a minimum SDK version of 11.
[block]11[/block]Sample
Parameters
For InfiniteCycleViewPager
you can set such parameters as:
- min scale:
allows you to set the minimum scale of left and right bottom pages. - max scale:
allows you to set the maximum scale of center top page. - min scale offset:
allows you to set offset from edge to minimum scaled pages. - center scale offset:
allows you to set offset from center when two pages appears. - model selected icon:
allows you to set selected icon when current model is active. - medium scaled:
allows you to set is scaling would be min -> max or min -> medium -> max. - scroll duration:
allows you to set snap scrolling duration. - scroll interpolator:
allows you to set snap scrolling interpolator. - page transform listener:
allows you to set page transform listener. - auto scroll:
allows you to set auto scroll in positive and negative directions.
Tips
Two-way widget need a lot of memory.
Infinite scroll available when item count more then 2.
You can set vertical or horizontal infinite cycle ViewPager.
Init
Check out in code init:
1 2 3 4 5 6 7 8 9 10 11 12 13 | // final VerticalInfiniteCycleViewPager infiniteCycleViewPager = // (VerticalInfiniteCycleViewPager) view.findViewById(R.id.vicvp); final HorizontalInfiniteCycleViewPager infiniteCycleViewPager = (HorizontalInfiniteCycleViewPager) view.findViewById(R.id.hicvp); infiniteCycleViewPager.setAdapter(...); infiniteCycleViewPager.setScrollDuration(500); infiniteCycleViewPager.setInterpolator(...); infiniteCycleViewPager.setMediumScaled(true); infiniteCycleViewPager.setMaxPageScale(0.8F); infiniteCycleViewPager.setMinPageScale(0.5F); infiniteCycleViewPager.setCenterPageScaleOffset(30.0F); infiniteCycleViewPager.setMinPageScaleOffset(5.0F); infiniteCycleViewPager.setOnInfiniteCyclePageTransformListener(...); |
If you want to get item position just call this method:
1 | infiniteCycleViewPager.getRealItem(); |
To update your ViewPager after some adapter update or else, you can call this method:
1 | infiniteCycleViewPager.notifyDataSetChanged(); |
If you want to start auto scroll or stop call this methods:
1 2 3 4 | // true - positive // false - negative infiniteCycleViewPager.startAutoScroll(...); infiniteCycleViewPager.stopAutoScroll(); |
Other methods check out in sample.
And XML init:
1 2 3 4 5 6 7 8 9 10 11 | <!--<com.gigamole.infinitecycleviewpager.VerticalInfiniteCycleViewPager--> <com.gigamole.infinitecycleviewpager.HorizontalInfiniteCycleViewPager android:layout_width="match_parent" android:layout_height="match_parent" app:icvp_interpolator="..." app:icvp_center_page_scale_offset="30dp" app:icvp_max_page_scale="0.8" app:icvp_medium_scaled="true" app:icvp_min_page_scale="0.5" app:icvp_min_page_scale_offset="5dp" app:icvp_scroll_duration="500"/> |
[block]12[/block]Getting Help
To report a specific problem or feature request, open a new issue on Github.
[block]14[/block]Xamarin
Thanks to Martijn van Dijk for developing Xamarin bindings library for InfiniteCycleViewPager.
Plugin is available on Nuget.
[block]18[/block]Credits
Yehor Kosinov | Prakhar Neel Sharma |
---|---|