ViewPager的setAdapter(PagerAdapter adapter);
PagerAdapter是一个抽象类,有两个抽象方法必须实现:
第一个是int getCount();返回ViewPager的item数,通俗讲就是ViewPager的页数;
public int getCount() { return list != null ? list.size() : 0; }
如果我很无聊的让返回的值小于实际list.size(),那么靠后(list里靠后的)的页数会显示不出来,不会崩溃。
如果返回值大于实际list.size(),(通常)点最后一个时会崩溃(取决于使用的Adapter类型以及重写的方法写法,也可能点任何其他一个都崩嘿嘿)。崩溃的原因都是给的position大于list的长度,俗称:java.lang.IndexOutOfBoundsException。
第二个是boolean isViewFromObject(View view, Object object);
这个方法理解就比较复杂了,ViewPage管理它的每一个页(pager)用的是key-value,每个页面会有一个值(生成这一页时会生成这个值),这个方法就是检验这一页和这个值是否相同...emmm如果全返回true,只会显示第一页,全false一页都显示不出来...都不会崩。
回头看下源码再细细解释这一段....有点事要先去忙了