public abstract boolean isViewFromObject (View view, Object object)
Determines whether a page View is associated with a specific key object as returned by instantiateItem(ViewGroup, int). This method is required for a PagerAdapter to function properly.
Parameters
view Page View to check for association with object
object Object to check for association with view
Returns
true if view is associated with the key object object
api这么写,判断view是不是和object相关,还是不大懂要干嘛?
楼上表达的太惨不忍睹,问题不回答就带着你绕。理清楚了再回答,不要强答。百度里还一堆复制他的回答,真tm!! 本身不是复杂的问题 特地注册帐号回答
以下正文:
前提概念:
ViewPager里面对每个页面的管理是key-value形式的,也就是说每个page都有个对应的id(id是object类型),需要对page操作的时候都是通过id来完成的
首先看这个函数
public Object instantiateItem(ViewGroup container, int position);
这是pageAdapter里的函数,功能就是往PageView里添加自己需要的page。同时注意它还有个返回值object,这就是那个id。
最后
public abstract boolean isViewFromObject (View view, Object object)
这个函数就是用来告诉框架,这个view的id是不是这个object。
谷歌官方推荐把view当id用,所以常规的instantiateItem()函数的返回值是你自己定义的view,而isViewFromObject()的返回值是view == object。
ps:感觉这个机制应该是历史遗留问题,属于改bug改出来的机制。否则官方不会推荐这种把view当id的做法。
最最后:如有错误,望指正,以免误导后来者。