安卓PagerAdapter中的isViewFromObject()方法有什么用?
来源:互联网 发布:程序员好用的app 编辑:程序博客网 时间:2024/06/11 01:10
PagerAdapter的一个方法是
public Object instantiateItem (ViewGroup container, int position)
Create the page for the given position. The adapter is responsible for adding the view to the container given here, although it only must ensure this is done by the time it returns from finishUpdate(ViewGroup).
Parameters
container The containing View in which the page will be shown.
position The page position to be instantiated.Returns
Returns an Object representing the new page. This does not need to be a View, but can be some other container of the page.
该方法声明了返回值不一定是view,可以是任意对象。要知道view的添加是在该方法内部,通过container来添加的,所以这个方法不一定要返回view。
而isViewFromObject方法是用来判断pager的一个view是否和instantiateItem方法返回的object有关联,如果有关联做什么呢?去看代码吧
ViewPager源码,你去看下addNewItem方法,会找到instantiateItem的使用方法,注意这里的mItems变量。然后你再搜索下isViewFromObject,会发现其被infoForChild方法调用,返回值是ItemInfo。再去看下ItemInfo的结构,其中有一个object对象,该值就是instantiateItem返回的。
也就是说,ViewPager里面用了一个mItems(ArrayList)来存储每个page的信息(ItemInfo),当界面要展示或者发生变化时,需要依据page的当前信息来调整,但此时只能通过view来查找,所以只能遍历mItems通过比较view和object来找到对应的ItemInfo。
说的有些乱,好好看源码就懂了!
- 安卓PagerAdapter中的isViewFromObject()方法有什么用?
- PagerAdapter中的isViewFromObject()方法有什么用?
- PagerAdapter中的isViewFromObject()方法有什么用?
- 安卓PagerAdapter在广告切换中的应用
- js中的escape方法有什么用?
- java的main方法中的字符串数组有什么用
- 安卓PagerAdapter的一个小漏洞
- 安卓android属性中的px,sp,dip有什么区别?
- java中的静态方法有什么作用?
- java中的void有什么作用啊?构造方法与方法有什么区别呢?
- JAVA中的方法和构造方法有什么区别
- ADT bundle和Eclipse和Android Studio有什么区别?安卓开发该用哪个?
- 用Qt开发安卓应用,是不是不成熟?有什么缺陷?
- [Unity][Anroid]发布打包安卓APK和 用AS3.0打包有什么区别
- 安卓架构...有什么清晰的方式?
- 博客中的rss有什么用?
- html中的span是什么意思,有什么用
- java中的private到底有什么用
- ios代码段运行时间的测定
- Qt GraphicsView框架中实现多个item之间的层次调整功能
- Java GUI基本知识点
- 一个css和js结合的下拉菜单,支持主流浏览器
- 江苏省计算机三级知识结构
- 安卓PagerAdapter中的isViewFromObject()方法有什么用?
- UML模式结构
- js 图片裁剪功能 demo
- 为什么MongoDB会丢数据
- windows批处理命令详解
- 一步一步写算法(之hash表)
- android 实现图片圆角
- mysql 根据ip给远程机器授权可以远程访问
- telerik:RadGridView常用属性