Days18 ViewPager

1、简介:ViewPager的功能就是可以使视图滑动。ViewPager用于实现多页面的切换效果。该类存在于Google的兼容包里面,android.support.v4.view.ViewPager。
2、关联源码:可增强可读性,方法的参数会更容易辨别
在libs下new File名为android-support-v4.jar.properties,src=extra/android/support/v4/src(需要将/转为//,转义字符),close project,openproject
3、预加载:可以通过ViewPager的setOffscreenPageLimit()方法设置预加载页面数量,默认为1;预加载就是instantiateItem即实例化下一个可能出现的条目,当前条目(前面若有条目)预加载前面最多一个条目(后面若有条目)预加载后面最多一个条目。比如,页面从1到2,会实例化3;从2到3,会实例化4,并且会destory1,条目被销毁后,再需加载,会重新实例化;若设置setOffscreenPageLimit(2),当前条目前最多预加载两个,当前条目后最多预加载两个
PagerAdapter:给ViewPager设置适配器
大神详解:http://blog.youkuaiyun.com/harvic880925/article/details/38487149

   /**
     * ViewPager里面元素的总数量
     */
    @Override
    public int getCount() {
        Log.d("test", "=============getCount========");
        return list.size();
    }

    /**
     * 功能:该函数用来判断instantiateItem(ViewGroup,
     * int)函数所返回来的Key与一个页面视图是否是代表的同一个视图(即它俩是否是对应的,对应的表示同一个View)
     * 返回值:如果对应的是同一个View,返回True,否则返回False。
     */
    @Override
    public boolean isViewFromObject(View view, Object object) {
        Log.d("test", "======isViewFromObject=====" + "view" + view
                + ", object" + object);
        return view == object;
    }

    /**
     * 实例化条目 做了两件事: 1、将参数里给定的position的视图,增加到container中,供其创建并显示
     * 2、返回当前position的View做为此视图的Key
     * 自己理解:container为一个容器,存放并管理ViewPager中要显示的视图,此方法中的container与destroyItem方法中的container为同一个
     * 延伸:(返回一个代表新增视图页面的Object(Key),只要你可以与你增加的View一一对应即可)
     * (例如position作为key返回,在isViewFromObject中根据传来的key,找到view,判断与传来的参数View
     * arg0是不是同一个视图)
     */
    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        Log.d("test", "======instantiateItem=====" + "container" + container
                + ", position" + position);
        container.addView(list.get(position));

        return list.get(position);
    }

    /**
     * 销毁移除一个给定位置的页面
     */
    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        Log.d("test", "======destroyItem=====" + "container" + container
                + ", position" + position+", object"+object);
        container.removeView(list.get(position));
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值