ViewPager控件(内含方法)以及所应用到的场景。

有关ViewPager这个控件呢。呐,ViewPager是一个允许使用者左右滑动数据页面的布局管理器,我们可以通过适配器(pagerAdapter)来管理要显示的页面,PagerAdapter是用于"将多个页面填充到ViewPager"的适配器的一个基类,大多数情况下呢,我们更倾向于自定义一个继承了PagerAdapter并且相对具体一些的一个适配器来使用。


在继承PagerAdapter基类之后,需要重写四个方法


1.instantiateitem(ViewGroup,int);

instantiateItem(ViewGroup, int)  // 当要显示的图片可以进行缓存的时候,会调用这个方法进行显示图片的初始化,我们将要显示的ImageView加入到ViewGroup中,然后作为返回值返回即可

2.detroyitem(VeiwGroup,object,int);

destroyItem(ViewGroup, int, Object) // PagerAdapter只缓存三张要显示的图片,如果滑动的图片超出了缓存的范围,就会调用这个方法,将图片销毁

3.getCount();

getCount() // 获取要滑动的控件的数量

4.isViewFromObject(View,Object);

isViewFromObject(View, Object)  // 来判断显示的是否是同一张图片,这里我们将两个参数相比较返回即可

其中后两个方法是在继承之后自动重写,然而前两个方法则需要在进行该操作时手动重写。

ViewPager不直接处理每一个视图而是将各个视图与一个键相联系起来,这个键呢,是我们常见的一个东西,如图所示:


ViewPager控件(内含方法)以及所应用到的场景。_第1张图片

就是上图中黑色箭头标记出来的小圆点,它就是这个键了,其中isViewFromObject(View,Object)方法就是代表着当前页面是否与给定的键相关联的一个方法,如果相关联,就代表对应的是同一个View返回true,否则返回false。


ViewPager在处理滑动事件的时候需要实现OnPageChangerListener接口,实现这个接口我们也需要重写三个方法

onpageScrollStateChanged

onpageScrolled

onpageSelected

其中onpageScrollStateChanged(int arg0)方法是在状态改变的时候使用,它的参数arg0有三种状态(0,1,2)。当arg==1时代表正在滑动,arg==2是代表滑动结束,arg==0代表什么都没做。当我们的页面开始滑动时,三种状态的变化顺序为(1,2,0)。

onpageScrolled(nt arg0,float arg1,int arg2)方法是在当页面滑动的时候才会调用此方法,在滑动停止前,此方法会被一直调用,其中的三个参数分别代表:

arg0:当前页面,及你点击滑动的页面;

arg1:当前页面偏移的百分比;

arg2:当前页面偏移的像素位置

最后,onpageSelected(int arg0)方法是在页面跳转完之后得到调用,arg0是你当前选中的页面的position(位置编号)。


在大部分时候,项目中的ViewPager会和Fragment同时出现,每一个ViewPager的页面就是一个Fragment(微信主页)�Android提供了一些专门的适配器来让ViewPager与Fragment一起工作,也就是FragmentPagerAdapter与FragmentStatePagerAdapter。


FragmentPagerAdapter继承自PagerAdapter,主要用来展示多个Fragment页面,并且每一个Fragment都会被保存在fragmentmanager中。


你可能感兴趣的:(ViewPager控件(内含方法)以及所应用到的场景。)