ViewPager以前有简单的用过,但没做过自动滚动和循环滚动,在实现起来还是有很多细节需要注意。总体思路:
1.实现循环滚动的思路就是:
1)将PagerAdapter的getCount方法返回值设为无穷大,这样就可以实现无限制的滑动,不会出现滑到头的时候。
2)在每次添加新的View时,都是取当前position对总页数的取余数,然后得到要显示的页View进行添加,删除也是相同操作。
3)设定最开始的要显示的ViewPager的currentItem为Integ.MAX的一半左右,这样保证可以向左循环滑动。
2.实现自动循环的思路:
设定一个变量position来记录当前ViewPager的位置,开启一个新的线程,每隔一定时间对position加1,并发送一个Message给Handler,在Handler中重新setCurrentItem。
3.实现手动滑动与自动滑动结合:
1)利用一个boolean变量isTouched来记录当前是否在触摸ViewPager,在ViewPager的setOnTouchListener中更新该值,只有在isTouched为false时才对Handler发送Message。
2)在手动滑动页面时要改变position值,否则在下次自动滑动时position的值没有更新将报错,所以我们在ViewPager的setOnPageChangeListener中来更新position。
接下来来动手实现自己的思路:<