PagerAdapter学习

前言: ViewGroup可以实现很多功能,如简单的页面导航和页面滑动等等。谷歌公司
为我们提供ViewGroup的API。谷歌公司推荐我们把ViewGroup和Fragment一起使,如果一起使用的话,
应该使用FragmentPagerAdapter和FragmentStatePagerAdapter来进行适配处理,在这里我们只看单
独使用ViewGroup的情况,这时我们需要使用PagerAdapter

(一)至少要进行重写的函数
1 public boolean isViewFromObject(View arg0, Object arg1) 
2 public int getCount() 
3 public void destroyItem(ViewGroup container, int position,Object object)
4 public Object instantiateItem(ViewGroup container, int position) 
(二)重写函数解析
其实PagerAdapter和AdapterView存在着一定的区别,ViewPager使用回调函数来
表示一个更新的过程,而并不像AdapterView一样使用一个视图回收机制,
当然在有时也会使用这种巧妙的方式,就是当我们按照android推荐的
方式将Fragment和ViewPager一起使用时,在这里就不提了。在pageradapter
中使用一个键值来对应每一个视图,这个键值独立于这个页面所在的position
当然在你进行自定义的时候,如果使用的PagerAdapter比较简单,你也可以直接
使用视图对应的position来充当键值,好了接下来我就大致说下我对这四个
重写函数的大致理解,全是拙见哈哈。
1 getCount() 
毋庸多言,这个就是来返回你所想要在Viewpager中使用的View的个数,这个View的布局可以自己设定,
并不一定非要占满屏幕,在你任意给定的位置都可以实现ViewPager的效果。
2 destroyItem(ViewGroup container, int position,Object object)
这个函数用来移除一个给定位置的视图。
3 instantiateItem(ViewGroup container, int position)
这是一个很重要的函数了,它用来创建指定位置的页面视图,并将其保存到给定的容器
container之中。
它返回一个你新增加的视图页面对应的键值,这个键值并不一定就要返回视图本身,其实只要是
能够与你的这个视图相对应的就行。
4 isViewFromObject(View arg0, Object arg1)
这个函数用来判断instantiateItem()函数返回的值对应的视图是否与参数传递进来的这个视图
是同一个视图,如果是的话就返回true,否者就返回false。
	PagerAdapter pagerAdapter = new PagerAdapter() {

			@Override
			public boolean isViewFromObject(View arg0, Object arg1) {
				// TODO Auto-generated method stub
				return arg0 == arg1;
			}

			/**
			 * 返回要滑动的View的个数
			 */
			@Override
			public int getCount() {
				// TODO Auto-generated method stub
				return viewList.size();
			}

			/**
			 * destroyItem():从当前container中删除指定位置(position)的View
			 */
			@Override
			public void destroyItem(ViewGroup container, int position,
					Object object) {
				// TODO Auto-generated method stub
				container.removeView(viewList.get(position));
			}

			/**
			 * instantiateItem():做了两件事,第一:将当前视图添加到container中,第二:返回当前View
			 */
			@Override
			public Object instantiateItem(ViewGroup container, int position) {
				// TODO Auto-generated method stub
				container.addView(viewList.get(position));

				return viewList.get(position);
			}
		};
基本上将这四个函数重写后就能够完成对PagerAdapter的设置了。当然android.support.v4包还为我们提供了
实现标题栏的控件PagerTabStrip与PagerTitleStrip,也很简单只是在PagerAdapter中添加几个函数就可以实现
更漂亮的效果,这里就不说了,有兴趣的可以自己学习。。。。。。

你可能感兴趣的:(android,viewpager,构造函数,PagerAdapter)