在Android开发中利用ViewPager实现一个轮播功能-创新互联

本篇文章给大家分享的是有关在Android开发中利用ViewPager实现一个轮播功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

尚志网站建设公司创新互联,尚志网站设计制作,有大型网站制作公司丰富经验。已为尚志1000+提供企业网站建设服务。企业网站搭建\成都外贸网站建设要多少钱,请找那个售后服务好的尚志做网站的公司定做!

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

循环滑动效果的实现:PagerAdapter

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

class ImageAdapter extends PagerAdapter {
 private ArrayList viewlist;
 public ImageAdapter(ArrayList viewlist) {
  this.viewlist = viewlist;
 }
 @Override
 public int getCount() {
  // 设置成大,使用户看不到边界
  return Integer.MAX_VALUE;
 }
 @Override
 public boolean isViewFromObject(View arg0, Object arg1) {
  return arg0 == arg1;
 }
 @Override
 public void destroyItem(ViewGroup container, int position, Object object) {
  // Warning:不要在这里调用removeView
 }
 @Override
 public Object instantiateItem(ViewGroup container, int position) {
  // 对ViewPager页号求模取出View列表中要显示的项
  position %= viewlist.size();
  if (position < 0) {
   position = viewlist.size() + position;
  }
  ImageView view = viewlist.get(position);
  // 如果View已经在之前添加到了一个父组件,则必须先remove,否则会抛出IllegalStateException。
  ViewParent vp = view.getParent();
  if (vp != null) {
   ViewGroup parent = (ViewGroup) vp;
   parent.removeView(view);
  }
  container.addView(view);
  // add listeners here if necessary
  return view;
 }
}

分享名称:在Android开发中利用ViewPager实现一个轮播功能-创新互联
链接URL:http://scyanting.com/article/dseiej.html