分享

ViewPager的使用(2)

 星君达 2015-11-17
ViewPager的使用
在适配器中共有5个视图,分别为视图1、视图2、视图3、视图4、视图5。
 * 首次启动时,会向容器添加视图1、视图2;当向左滑动,当前显示视图2,不移除任何视图,向容器添加视图3;当再次向左滑动时,当前显示
 * 视图3,移除视图1,向容器添加视图4;当再次向左滑动时,当前显示视图4,会移除视图2,向容器添加视图5;当再次向左滑动时,当前显示视
 * 图5,会移除视图3,不向容器添加任何视图;依此类推
 * 注意:key要求必须和view唯一对应,instantiateItem方法返回的是每个视图对应的key
 * isViewFromObject方法的 第二个参数传入的是key
 * key:可以用view对象作为key值,也可以用每个视图的位置position作为key值,但要求key必须和view唯一对应
 *  
 * 添加标题时的要求:必须将标题控件作为子控件添加在ViewPager控件中,重写适配器的getPageTitle(int)。
 * 
 * PagerTabStrip和PagerTitleStrip都可以实现标题,
 * PagerTabStrip:交互式   PagerTitleStrip:非交互式
 * PagerTabStrip会出现下划线,并点击跳转到指定的页面。
 * 他们实现的标题栏效果很不好,不能指定一个页面一次显示一个,或者全部显示,而且标题还滑动,所以实际不建议使用


ViewPager禁止左右滑动
1. 新建一个类,实现ViewPager,必须包含两个构造方法(原有的ViewPager无法实现,必须自定义ViewPager)
2. 重写方法onInterceptTouchEvent()和onTouchEvent(),使其返回值为false
3. 使用view在xml文件中配置使用(注意:不可写为View)

setCurrentItem(1, false); //false:不显示跳转过程的动画  

当自定义的ViewPager中只包含一个构造函数时,会出现以下错误
android.view.InflateException: Binary XML file line #13: Error inflating class cn.itcast.heima.view.MyViewPager

禁止预加载:
private static final int DEFAULT_OFFSCREEN_PAGES = 0;//默认的加载页面,ViewPager是1个,所以会加载两个Fragment;当为0时,只加载一个页面

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多