现在的位置: 首页 > 移动开发 > 正文

android Viewpage之PageAdapter

2017年05月16日 移动开发 ⁄ 共 1430字 ⁄ 字号 评论关闭

终于把安卓基础学的差不多,深圳通APP,自己也开发完了,架构比较简单,之前写一个新闻教程,没有任何框架,但是在公司里面,都要求快速开发,SO,今天开始用框架将自己的APP美化。

PagerAdapter简介

PagerAdapter是android.support.v4包中的类,它的子类有FragmentPagerAdapter,
FragmentStatePagerAdapter,这两个adapter都是Fragment的适配器,用于实现Fragment的滑动效果,这两个adapter的使用和区别这次就先不介绍了,等下次有时间再做详细的介绍。

PagerAdapter主要是viewpager的适配器,而viewPager则也是在android.support.v4扩展包中新添加的一个强大的控件,可以实现控件的滑动效果,比如咱们在软件中常见的广告栏的滑动效果,用viewPager就可以实现。今天主要介绍如何使用viewPagr并重写PagerAdapter实现常见广告栏的滑动效果。

PagerAdapter用法简介

首先,如果继承pageradapter,至少必须重写下面的四个方法

1 instantiateItem(ViewGroup, int)

2. destroyItem(ViewGroup, int, Object)
3. getCount()
4. isViewFromObject(View, Object)
下面我们以代码的形式,说明这四个方法的含义以及如何使用

其实你可以将Pageadapter当作一个工厂

①你要给他提供原料以及数量 getCount();

②他会判断一下原料是否合格,能否进行生产 isviewFromObject()

对于Viewpage自身提供缓存机制,这个还是今天查资料看到的 好神奇的感觉

③然后开始生产 放到生产线中去,然后给你要生产的成品instantiateItem();

private class ViewPagerAdapter extends PagerAdapter {

		// 获取要滑动的控件的数量,在这里我们以滑动的广告栏为例,那么这里就应该是展示的广告图片的ImageView数量
		@Override
		public int getCount() {
			return images.size();
		}

		// 来判断显示的是否是同一张图片,这里我们将两个参数相比较返回即可
		@Override
		public boolean isViewFromObject(View arg0, Object arg1) {
			return arg0 == arg1;
		}

		// PagerAdapter只缓存三张要显示的图片,如果滑动的图片超出了缓存的范围,就会调用这个方法,将图片销毁
		@Override
		public void destroyItem(ViewGroup view, int position, Object object) {
			view.removeView(images.get(position));
		}

		// 当要显示的图片可以进行缓存的时候,会调用这个方法进行显示图片的初始化,我们将要显示的ImageView加入到ViewGroup中,然后作为返回值返回即可
		@Override
		public Object instantiateItem(ViewGroup view, int position) {
			view.addView(images.get(position));
			return images.get(position);
		}
	}

抱歉!评论已关闭.