最近做的一个项目,客户要求在ViewPager实现的主页面中滑动到最后一页后继续滑动能返回到第一页,也就是实现无限循环滚动,效果如下:
看了下ViewPager没有滑到尽头的回调方法,因此想到的解决方案是,在原来的最后一页之后再加上一个第一页,也就是原本有编号为a1,b,c的三个页面,现在在最后面再加一个a页面,变为a1、b、c、a2四个页面,然后使用OnPageChangeListener中的onPageSelected方法来监听到页面切换,当发现是从第三个页面(c)切换到第四个页面(a1)时,调用viewPager的setCurrentItem(0, false)方法来跳转回第一页(a2),以下是核心代码:
viewPager.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageSelected(int arg0) { if(arg0==fragments.size()-1){ viewPaper.setCurrentItem(0, false); } } <span style="white-space:pre"> </span>}
*其中fragments数组存储的是a1、b、c、a2四个页面
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-26 19:59:49