ViewPager 笔记

来源:互联网 发布:淘宝举报中心 编辑:程序博客网 时间:2024/05/07 21:19

转载 http://blog.csdn.net/yan8024/article/details/47024117


提供一个适配器用于填充ViewPager页面. 你很可能想要使用一个更加具体的实现, 例如: FragmentPagerAdapter or FragmentStatePagerAdapter.


当你实现一个PagerAdapter时,至少需要覆盖以下几个方法



instantiateItem(ViewGroup, int)

这个函数的实现的功能是创建指定位置的页面视图.适配器有责任增加即将创建的View视图到这里给定的container中,这是为了确保在finishUpdate(viewGroup)返回时this is be done!返回值:返回一个代表新增视图页面的Object(Key),这里没必要非要返回视图本身,也可以这个页面的其它容器。其实我的理解是可以代表当前页面的任意值,只要你可以与你增加的View一一对应即可,比如position变量也可以做为Key(最后我们举个例子试试可不可行)


destroyItem(ViewGroup, int, Object)

该方法实现的功能是移除一个给定位置的页面。适配器有责任从容器中删除这个视图


getCount()

返回当前有效视图的个数


isViewFromObject(View, Object)

该函数用来判断instantiateItem(ViewGroup, int)函数所返回来的Key与一个页面视图是否是代表的同一个视图


public class PayKeyAdpater extends PagerAdapter {    private ImageView ivKeyImage;    private List<ImageView> ivKeyImageList;    public ViewPager vpKeyView;    private  Context objContext;    public PayKeyAdpater(Context context,ViewPager vp,List<ImageView> imageList) {        ivKeyImageList = imageList;        objContext = context;        vpKeyView = vp;    }    @Override    public int getCount() {        return Integer.MAX_VALUE;      //  return ivKeyImageList.size();    }    /**     * 官方提示这么写     * View是拖动的对象     * object 是下面instantiateItem返回的对象  看是否是objectView只有他们关联才可以去查询当前的info     */    @Override    public boolean isViewFromObject(View view, Object object) {        return view==object;    }    /**     * 加载item     *     */    @Override    public Object instantiateItem(ViewGroup container, int position)    {        position=position%ivKeyImageList.size();   //得到当前的第几个        vpKeyView.addView(ivKeyImageList.get(position));   //添加那个viewvp        //container.addView(ivKeyImageList.get(position), 0);//添加页卡        return ivKeyImageList.get(position);    }    /**     * 销毁对象     * position 被销毁的对象的索引     */    @Override    public void destroyItem(ViewGroup container, int position, Object object) {        position=position%ivKeyImageList.size();        vpKeyView.removeView(ivKeyImageList.get(position));    }}

0 0
原创粉丝点击