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() {@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中添加几个函数就可以实现
更漂亮的效果,这里就不说了,有兴趣的可以自己学习。。。。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/453557.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

arXiv网站

arXiv 原先是由物理学家保罗金斯巴格在1991年建立的网站, 我们会将预稿上传到arvix作为预收录,因此这就是个可以证明论文原创性(上传时间戳)的文档收录网站。转载于:https://www.cnblogs.com/AntonioSu/p/8387324.html

加薪——爱你在心口难开

加薪——爱你在心口难开(1) (原文刊登于《程序员》杂志07年第4期) 刚过了春节的4月份,空气中到处透着躁动的味道,“求职”、“招聘”不断刺激着程序员们的耳鼓,其实大多数跳槽者如果能静下心来审视自己一下&#xf…

java线程interrupt用法_Java线程中interrupt那点事 | 学步园

1.先看一下例子程序:import java.io.IOException;import java.net.ServerSocket;import javax.rmi.CORBA.Tie;/**author: ZhengHaibo*web: http://blog.csdn.net/nuptboyzhb*mail: zhb931706659126.com*2014-3-16 Nanjing,njupt,China*/public class TestThread {/*…

Kotlin Native新增Objective-C互操作能力以及对WebAssembly的支持

根据JetBrains技术主管Nikolay Igotti的介绍,Kotlin/Native 0.4已经可用于为iOS和macOS开发原生应用。此外该版本还为WebAssembly平台提供了实验性支持。 \\Kotlin/Native对iOS/macOS开发的支持,关键在于实现了与Objective-C的互操作性。JetBrains目前已…

TranslateAnimation动画

众所周知,TranslateAnimation是android中重要的一个动画函数,很多时候我们都需要使用它来实现更好的UI效果,今天就简单研究下这个TranslateAnimation。TranslateAnimation这个位移动画主要有三个构造函数,对应着三种不同的参数形式…

maven项目使用jacoco插件检测代码覆盖率详细配置

使用maven构建项目&#xff08;java项目或者web项目都可以&#xff09; jacoco插件的配置参考官方网址&#xff1a;http://www.eclemma.org/jacoco/trunk/doc/maven.html &#xff08;1&#xff09;配置jacoco的依赖jar包 <dependency><groupId>org.jacoco</gro…

JAVA如何取得空list成员类型_String 类型的List作为一个成员变量保存,保存成功后取对象时报空指针...

异常&#xff1a;Caused by: java.lang.NullPointerException at org.litepal.crud.DataHandler.setToModelByReflection(DataHandler.java:1341) at org.litepal.crud.DataHandler.setGenericValueToModel(DataHandler.java:787) at org.litepal.crud.DataHandler.query(DataH…

C语言:几种字符输入函数的区别

几种字符输入函数的区别&#xff1a; 1、getche()函数:用于从键盘读入一个字符并显示&#xff0c;然后直接执行下一条语 句。2、getch()函数:用于从键盘中读入一个字符&#xff0c;但不显示在屏幕上&#xff0c;然后执行下一条语句。3、getchar()函数&#xff1a;用于从键盘读…

VCG Mesh刚性旋转(变换矩阵)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 旋转矩阵如果从线性空间的角度来看,它类似于一个投影过程。假设坐标 P ( x 1 , y 1 , z 1 ) P(x_1,y_1,z_1)

薪水增长多少,新机会才值得考虑?

薪水增长多少,新机会才值得考虑? 阴历年马上就要来到&#xff0c;猪年正在向我们招手。相信有些朋友年后考虑新的要作机会&#xff0c;年终奖和第13个薪水已到手&#xff0c;是考虑一下离开这个让自己不“爽”公司的时候了&#xff0c;哈哈&#xff01; 但是&#xff0c;薪水…

ScaleAnimation动画

ScaleAnimation动画是用来进行缩放的动画&#xff0c;我在使用时刚开始有些不解的问题后来经过学习&#xff0c;有了一个更深的了解。先来看看源码&#xff0c;其实ScaleAnimation有四个构造函数&#xff0c;这里我只列出了其中的一个&#xff0c;因为另外的三个其实都只是这个…

Swift快速入门(一)第一个Swift程序

1. 本系列说明 本系列只是一个Swift快速入门的教程&#xff0c;并没有详尽的介绍Swift&#xff0c;Swift也并不是一个简单的编程语言&#xff0c;所以要想详尽的系统的学习Swift&#xff0c;本系列并不适合你&#xff0c;此系列只是让开发者可以快速的用Swift来进行开发。另外学…

java 判断数字变化增减_java String 强化操作 判断数字 字符串转阿拉伯数字,相似度等等...

importjava.io.BufferedReader;importjava.io.StringReader;importjava.util.ArrayList;importjava.util.List;importjava.util.regex.Matcher;importjava.util.regex.Pattern;/***author*/public classStrings {/*** 全角转半角**paramsbc 全角字符*returnString*/public stat…

[CareerCup] 4.7 Lowest Common Ancestor of a Binary Search Tree 二叉树的最小共同父节点

4.7 Design an algorithm and write code to find the first common ancestor of two nodes in a binary tree. Avoid storing additional nodes in a data structure. NOTE: This is not necessarily a binary search tree. LeetCode上的原题&#xff0c;请参见我之前的博客Lo…

让猎头雨天送伞--大话猎头

让猎头雨天送伞--大话猎头(1) Arthur毕业之后&#xff0c;在一同家公司的研发部工作了7年&#xff0c;从初级开发工程师一直做到项目经理&#xff0c;过手十几个大项目&#xff0c;现在带领8人的研发团队。猎头最近频频与他沟通&#xff0c;希望他考虑几个外企研发主管的机会…

android布局的一些知识

(一)android:layout_alignParentBottom 控制该组件是否与布局容器底端对齐android:layout_alignParentLeft 控制该组件是否与布局容器左边对齐android:layout_alignParentRight 控制该组件是否与布局容器右边对齐android:layout_alignParentTop 控制该组件是否与布局容器顶端对…

IE8兼容问题总结---trim()方法

1.IE8不支持,jquery的trim()去空格的方法 错误表现 : 会报错,对象不支持此属性或方法; 解决办法 : 使用正则匹配空格 例如 : /^\s|\s$/greplace(/^\s|\s$/g,"");转载于:https://www.cnblogs.com/lizhiwei8/p/8392589.html

java的流套接_java-使用流关闭套接字

我的以下问题非常简单.这是我的代码&#xff1a;public class Protocol implements Runnable {private SSLSocket socket null;private InputStream is null;private OutputStream os null;...public Protocol(Socket s) {socket (SSLSocket)s;is socket.getInputStream()…

简历撰写

没什么可写的项目&#xff0c;或者自己说不太清&#xff0c;效果也不明显的项目&#xff0c;就不要写简历上了转载于:https://www.cnblogs.com/brainstorm/p/7942669.html

如何真正做好项目管理?

项目要能顺利执行其实并不简单&#xff0c;如果又渉及多个单位合作&#xff0c;困难程度又大增。 从项目经理的工作日志片段&#xff0c;可以看出每个项目经理应该都有自已悲惨的故事&#xff0c;程度恐怕只有过之而无不及。项目经理到底应该有那些看家本领呢&#xff1f; …