ViewPage实现自动滚动并没有通过ScheduledExcutorService或者Timer定期执行某个任务实现,而是简单的通过handler发送消息去完成一次滚动,在完成一次滚动后发送另外一个delay的滚动消息,如此循环实现。
ViewPager滑动速度的设置是通过反射的方式重新设置ViewPager的Scroller,改变Scroller的startScroll的间隔时间完成的。调用setScrollDuration(double)即可。
如何使用呢?
首先,引入公共库。
Android Auto Scroll ViewPager 作为你项目的library。
然后,调用。分两步。
第一步,利用自动滚动的AutoScrollViewPager来代替一般的ViewPager。
第二步,启动ViewPager自动滚动。
startAutoScroll()启动自动滚动
stopAutoScroll()停止自动滚动
另外,我们可以根据自己的需求进行一系列相关的设置。
setInterval(long)设置自动滚动的间隔时间,单位为毫秒
setDirection(int)设置自动滚动的方向,默认向右
setCycle(boolean)是否自动循环轮播,默认为ture
setScrollDurationFactor(double)设置VIewPager滑动动画间隔时间的倍率,达到减慢动画或者改变动画速度的效果
setStopScrollWhenTouch(boolean)当手指碰到ViewPager时是否停止自动滚动,默认为true。
setSlideBorderMote(int)滑动到第一个或者最后一个Item的处理方式,支持没有任何操作、轮播以及传递到父View三种模式。
setBorderAnimation(boolean)设置循环滚动时滑动到边缘滚动到下一个是否需要动画,默认为true。