您当前的位置: 首页 > 

xiangzhihong8

暂无认证

  • 2浏览

    0关注

    1324博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

viewpager循环滚动和自动轮播的问题

xiangzhihong8 发布时间:2015-08-25 19:33:52 ,浏览量:2

ViewPager是一个常用的android组件,不过通常我们使用ViewPager的时候不能实现左右无限循环滑动,在滑到边界的时候会看到一个不能翻页的动画,可能影响用户体验。此外,某些区域性的ViewPager(例如展示广告或者公告之类的ViewPager),可能需要自动轮播的效果,即用户在不用滑动的情况下就能够看到其他页面的信息。

为此我查阅了网络上现有的一些关于实现这样效果的例子,但都不是很满意,经过反复实验,在这里总结并分享给大家,希望能有所帮助。

循环滑动效果的实现:PagerAdapter

我们知道ViewPager自带的滑动效果非常出色,因此我们基本不需要处理这个滑动,只处理内容的显示。而内容的显示是由Adapter控制的,因此这里重点就是这个Adapter了。为简单起见,本例的每个View直接是一张图片。下面是Adapter的代码:

[java]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. private class ImageAdapter extends PagerAdapter{  
  2.            
  3.         private ArrayList viewlist;  
  4.    
  5.         public ImageAdapter(ArrayList viewlist) {  
  6.             this.viewlist = viewlist;  
  7.         }  
  8.    
  9.         @Override  
  10.         public int getCount() {  
  11.             //设置成最大,使用户看不到边界  
  12.             return Integer.MAX_VALUE;  
  13.         }  
  14.    
  15.         @Override  
  16.         public boolean isViewFromObject(View arg0, Object arg1) {  
  17.             return arg0==arg1;  
  18.         }  
  19.          @Override    
  20.          public void destroyItem(ViewGroup container, int position,    
  21.                  Object object) {    
  22.              //Warning:不要在这里调用removeView  
  23.          }    
  24.          @Override    
  25.          public Object instantiateItem(ViewGroup container, int position) {  
  26.              //对ViewPager页号求模取出View列表中要显示的项  
  27.              position %= viewlist.size();  
  28.              if (position
关注
打赏
1482932726
查看更多评论
立即登录/注册

微信扫码登录

0.0818s