本文章是Fragment详解系列中的第二篇。本文将以一个炫耀式的View切换来详解ViewPager的使用。
先来了解下ViewPager的基本使用,ViewPager使用场景即是多个View直接可以进行切换。ViewPager关联的最重要的就是PageTransformer 和 PagerAdapter,后续会进行详解。
ViewPager中主要使用的方法解析如下:
setOffscreenPageLimit: 可以理解为缓存中保存的页面数目(除去当前页面),就是预加载页面个数。例如设置为 2,则除了当前页面,预先加载到缓存中的还有2个页面,即是前后2个页面。也就是除了当前显示的页面,前后2个页面已经准备完毕,当左或者右滑动切换的时候不用再加载。
setPageMargin:子页面偏离父亲距离。
setPageTransformer:设置滑动动作。
**setAdapter:**PageView的适配器。
ViewPager.PageTransformer:这个类必须实现transformPage(View page, float position) ,各种切花VIEW的动画效果就在这个方法实现了。View 是 ViewPager中的 view对象,position是本page所在的位置。当前page为0,左边的page为-1,右边的page为1。因此position的范围为【-1,1】。
PagerAdapter:本适配器必须实现4个方法,入下面代码:
mViewPager.setAdapter(new PagerAdapter() {
@Override
public int getCount() {
return imageRels.length;//ViewPager中page的个数
}
//本方法就是向ViewPager中增加page了
@Override
public Object instantiateItem(ViewGroup container, int position) {
ImageView imageView = new ImageView(ViewPagerActivity.this);
imageView.setImageResource(imageRels[position]);
container.addView(imageView);
return imageView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View)object);
}
//