PagerAdapter简单记录

什么时候需要自己实现PagerAdapter接口呢?需要ViewPager托管非fragment视图时(如图片这样的常见View对象),就需要实现原生PagerAdapter接口。
PagerAdapter 常见的三个方法

public Object instantiateItem(ViewGroup container, int position)
public void destroyItem(ViewGroup container, int position, Object object)
public abstract boolean isViewFromObject(View view, Object object)

PagerAdapter.instantiateItem(ViewGroup, int)方法告诉 PagerAdapter 创建指定位置的列表项视图,然后将其添加给ViewGroup 视图容器

destroyItem(ViewGroup, int,Object) 方法则告诉 PagerAdapter 销毁已建视图。注意, instantiateItem(ViewGroup, int)
方法并不要求立即创建视图。因此, PagerAdapter 可自行决定何时创建视图。

视图创建完成后, ViewPager 会在某个时间点看到它。为确定该视图所属的对象, ViewPager 会 调 用 isViewFromObject(View, Object) 方 法 。 这 里 , Object 参 数 是 instantiateItem(ViewGroup,int)方法返回的对象。因此,假设 ViewPager 调用instantiateItem(ViewGroup, 5)方法返回A对象,那么只要传入的View参数是第5个对象的视图, isViewFromObject(View, A)方法就应返回true值,否则返回false值。

注意的小点:ViewPager 布局参数是不支持边距设置的。所以要是需要边距,最好是在 ViewPager 子布局中设置 padding , 不要使用 layout_margin。

涉及到 ViewPager 有好多的事情啊,无限轮滑,嵌套 ViewPager 收拾处理,先埋个坑吧,后面补,感觉最近几天埋的坑越来越多了。

猜你喜欢

转载自blog.csdn.net/xiao6gui/article/details/80761090