前言: 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() {@Overridepublic boolean isViewFromObject(View arg0, Object arg1) {// TODO Auto-generated method stubreturn arg0 == arg1;}/*** 返回要滑动的View的个数*/@Overridepublic int getCount() {// TODO Auto-generated method stubreturn viewList.size();}/*** destroyItem():从当前container中删除指定位置(position)的View*/@Overridepublic void destroyItem(ViewGroup container, int position,Object object) {// TODO Auto-generated method stubcontainer.removeView(viewList.get(position));}/*** instantiateItem():做了两件事,第一:将当前视图添加到container中,第二:返回当前View*/@Overridepublic Object instantiateItem(ViewGroup container, int position) {// TODO Auto-generated method stubcontainer.addView(viewList.get(position));return viewList.get(position);}};

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

PagerAdapter学习相关推荐

  1. android viewpager 详解,详解Android App中ViewPager使用PagerAdapter的方法

    PageAdapter是一个抽象类,直接继承于Object,导入包android.support.v4.view.PagerAdapter即可使用. 要使用PagerAdapter, 首先要继承Pag ...

  2. Android 开发之ViewPage官方文档学习笔记

    2019独角兽企业重金招聘Python工程师标准>>> 以下为官网的官方文档,我将从翻译该文档开始学习. ViewPager extends ViewGroup java.lang. ...

  3. Android开发学习之基于ViewPager实现Gallery画廊效果

    通过我们前面的学习,我们知道ViewPager是可以做出近乎完美的滑动体验,回顾整个Android,我们发现Gallery具备同样的特点,于是我们大胆地猜想,Gallery是否和ViewPager之间 ...

  4. GitHub 优秀的开源项目学习

    转载:原博客地址http://blog.csdn.net/shulianghan/article/details/18046021 一.ListView android-pulltorefresh 一 ...

  5. 2022 最新 Android 基础教程,从开发入门到项目实战【b站动脑学院】学习笔记——第八章:高级控件

    本章介绍了App开发常用的一些高级控件用法,主要包括:如何使用下拉框及其适配器.如何使用列表 类视图及其适配器.如何使用翻页类视图及其适配器.如何使用碎片及其适配器等.然后结合本章所学 的知识,演示了 ...

  6. Android学习笔记——归纳整理

    目录 一:Android系统架构 二:Actvity相关 2.1基础相关 2.2 Intent相关 2.2.1 Intent的组成 2.2.2 显式Intent 2.2.3 隐式Intent 2.2. ...

  7. Android开源项目 资源 学习

    转载了一个开源项目的文章,转载一篇有系统总结的文章.感谢博主的慷慨,让我们学习! Android开源项目系列汇总已完成,包括: Android开源项目第一篇--个性化控件(View)篇 Android ...

  8. 【ViewPager的学习】一、简单使用

    ViewPager就不多介绍,主要用于手机引导页面.软件导航.轮播图片等情况. 使用它需要引用一个库:android-support-v4.jar,add to build path. 同ListVi ...

  9. Android学习笔记 56. TabLayout 选项卡布局

    Android学习笔记 Android基础开发--布局 文章目录 Android学习笔记 Android基础开发--布局 56. TabLayout 选项卡布局 56.1 简介 56.2 TabIte ...

最新文章

  1. 鱼眼镜头标定基本原理及实现
  2. ASP.NET-FineUI开发实践-14
  3. vs2012中 build、compile,debug区别
  4. boost::mpl模块实现vector_c相关的测试程序
  5. Java黑皮书课后题第6章:6.1(数学:五角数)一个五角数被定义为n*(3*n-1)/2,其中n=1、2…。所以开始的几个数字就是1、5、12、22…,编写具有以下方法头的方法,返回一个五角数
  6. ios apple pay 证书配置
  7. 外设驱动库开发笔记3:AD527x系列数字电位器驱动
  8. iOS 9 学习系列:Storyboard References
  9. java guava map_使用googled的guava常见ImmutableMap、Multimap、Sets、Optional、Objects及Preconditions检查等用法...
  10. AppStore_隐私政策
  11. 精通innodb引擎_《MySQL技术内幕:InnoDB存储引擎》PDF 下载
  12. Java 实现中文汉字转拼音
  13. hbase常用命令及操作
  14. 计算机发展史上一些重要的著作
  15. 基于javaweb+JSP+Servlet宿舍管理系统(超级管理员、宿舍管理员、学生)
  16. 赖活不如好死?慎选你的死亡方式
  17. 从零基础到斩获BAT算法岗offer,围观复旦大佬的秋招之路
  18. 国产光纤熔接机技术是否成熟?带你评测TFN-S7光纤熔接机性能
  19. Mysql跨库跨表复制数据
  20. C# 参考 cool edit 样式, 绘制音频波形图

热门文章

  1. 实现Linux系统外部和容器内部的文件传输
  2. FFMPEG解码多线程
  3. 评论:中国企业向Faceook学习什么
  4. GCC 生成的符号表调试信息剖析
  5. Qt 程序获取程序所在路径、用户目录路径、临时文件夹等特殊路径的方法
  6. java学习笔记20(Arraylist复习,Collection接口方法,迭代器,增强型for循环)
  7. Lambda表达式使用2
  8. 如鹏网 net高级技术 第二章 委托和事件(复习)
  9. vue学习问题总结(一)
  10. 论文笔记 Aggregated Residual Transformations for Deep Neural Networks