android 实现无限循环viewpager
来源:互联网 发布:iphone手机称重软件 编辑:程序博客网 时间:2024/04/25 06:30
原理:
(1)在原有的adapter里添加一头一尾,当滑动到尾部的时候,通过setCurrentItem(1,false)切换到第二项,同理,滑动到第0项则切换到最后一项
(2)使用timer进行自动跳转
代码:
/***记录当前viewpager处于那一页*/private int mNowPage;/***储存Fragment的list*/private List<fragment> mLs = new ArrayList<fragment>();// 无限循环viewpagermVp = (ViewPager) getView().findViewById(R.id.vp);mVapater = new VPAdapterT(getFragmentManager());//配置viewpagermVp.setAdapter(mVapater);mVp.setOnPageChangeListener(new OnPageChangeListener() {@Overridepublic void onPageSelected(int arg0) { //selected这个方法,是在滑动时,手指弹起的那一刻 //setCurrentItem(1,false)方法不能在这里执行 //否则在首位切换时手指弹起就直接跳转 //这里主要处理小圆点的切换,代码不作补充 mNowPage = arg0; if (mNowPage != 0&& mNowPage != mLs.size() - 1) {mLs_Dots.get(mNowDots).setEnabled(false);mNowDots = mNowPage - 1;mLs_Dots.get(mNowDots).setEnabled(true);}else if(mNowPage==0){ mLs_Dots.get(mNowDots).setEnabled(false);mNowDots=mLs_Advertisement_.size() - 3;mLs_Dots.get(mNowDots).setEnabled(true);}else if (mNowPage== mLs.size() - 1) {mLs_Dots.get(mNowDots).setEnabled(false);mNowDots=0;mLs_Dots.get(mNowDots).setEnabled(true);}}@Overridepublic void onPageScrolled(int arg0, float arg1, int arg2) {}@Overridepublic void onPageScrollStateChanged(int arg0) { //PageScrollStateChanged有不同的状态,arg0为0时代表动画结束,1为触屏 //所以首尾交换只能放在这里进行,就察觉不到其实已经切换了页面if (arg0 == 0) {if (mNowPage == mLs.size() - 1) {mVp.setCurrentItem(1, false);}if (mNowPage == 0) {mVp.setCurrentItem(mLs.size() - 2,false);}MainActivity.this.time(); //如果页面切换完毕,则执行下一次计时}if (arg0==1) {timer.cancel(); //如果手指触摸这个viewpager,先停止计时器}}});</fragment></fragment>
计时器:
private Timer timer ;private void time() {timer = new Timer();TimerTask task = new TimerTask() {public void run() {Message message = new Message();message.what = 1;handler.sendMessage(message);}};timer.schedule(task, 5000);} private Handler handler = new Handler() {@SuppressLint("HandlerLeak")public void handleMessage(Message msg) {switch (msg.what) {case 1:timer.cancel();mVp.setCurrentItem(mNowPage + 1);break;}super.handleMessage(msg);}};
0 0
- android 实现无限循环viewpager
- android viewpager 无限循环实现gallery 效果
- Android ViewPager 实现无限循环滑动
- Android中ViewPager无限循环实现方法
- android viewpager 实现左右无限循环
- 【Android】ViewPager实现无限循环滚动
- Android ViewPager实现无限循环滑动
- android 自定义Viewpager实现无限循环
- android viewpager实现无限循环自动滚动
- Android实现ViewPager无限循环滚动回绕
- Android viewpager实现无限循环轮播
- android 实现无限定时循环viewpager
- ViewPager实现无限循环
- ViewPager实现无限循环
- 实现无限循环ViewPager
- Android无限循环ViewPager
- [Android]无限循环ViewPager
- viewpager自动无限循环实现
- OpenOCD介绍以及上手
- android studio项目如何导入到eclipse中
- TestNG eclipse 插件安装
- 右值引用:模板参数推导和引用折叠
- 关于类模板特化的小知识
- android 实现无限循环viewpager
- 栈和队列之用一个栈实现另一个栈的排序
- android-Drawable Resources
- 数据挖掘基本模型一览
- iOS-Pch常用代码
- 求两个数的最大公约数算法
- 一个数据库多Instance的连接解决方案
- 一些有用的网站
- 一个linux下的简单的贪吃蛇游戏(链表)