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时,只加载一个页面 |
|
来自: 星君达 > 《ViewPager》