本篇文章给大家分享的是有关在Android开发中利用ViewPager实现一个轮播功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
尚志网站建设公司创新互联,尚志网站设计制作,有大型网站制作公司丰富经验。已为尚志1000+提供企业网站建设服务。企业网站搭建\成都外贸网站建设要多少钱,请找那个售后服务好的尚志做网站的公司定做!ViewPager是一个常用的Android组件,不过通常我们使用ViewPager的时候不能实现左右无限循环滑动,在滑到边界的时候会看到一个不能翻页的动画,可能影响用户体验。此外,某些区域性的ViewPager(例如展示广告或者公告之类的ViewPager),可能需要自动轮播的效果,即用户在不用滑动的情况下就能够看到其他页面的信息。
循环滑动效果的实现:PagerAdapter
我们知道ViewPager自带的滑动效果非常出色,因此我们基本不需要处理这个滑动,只处理内容的显示。而内容的显示是由Adapter控制的,因此这里重点就是这个Adapter了。为简单起见,本例的每个View直接是一张图片。下面是Adapter的代码:
class ImageAdapter extends PagerAdapter { private ArrayListviewlist; 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; } }