- 常用方法
- setAdapter(PagerAdapter adapter) 设置适配器
- setOffscreenPageLimit(int limit) 设置缓存的页面个数,默认是 1
- setCurrentItem(int item) 跳转到特定的页面
- setOnPageChangeListener(..)
设置页面滑动时的监听器(现在API中建议使用addOnPageChangeListener(..)) - setPageTransformer(..PageTransformer) 设置页面切换时的动画效果
- setPageMargin(int marginPixels) 设置不同页面之间的间隔
- setPageMarginDrawable(..) 设置不同页面间隔之间的装饰图也就是 divide ,要想显示设置的图片,需要同时设置
setPageMargin()
PagerAdapter
基础用法不再赘述,下面讲一下PagerAdapter的两个子类FragmentPagerAdapter和FragmentStatePagerAdapter的区别
1.FragmentPagerAdapter:对于不再需要的 fragment,选择调用 onDetach() 方法,仅销毁视图,并不会销毁 fragment 实例。
2.FragmentStatePagerAdapter:会销毁不再需要的 fragment,当当前事务提交以后,会彻底的将 fragmeng 从当前 Activity 的FragmentManager 中移除,state 标明,销毁时,会将其 onSaveInstanceState(Bundle outState) 中的 bundle 信息保存下来,当用户切换回来,可以通过该 bundle 恢复生成新的 fragment,也就是说,你可以在 onSaveInstanceState(Bundle outState) 方法中保存一些数据,在 onCreate 中进行恢复创建。
总结使用 FragmentStatePagerAdapter 更省内存,但是销毁后新建也是需要时间的。一般情况下,如果你是制作主页面,就 3、4 个 Tab,那么可以选择使用 FragmentPagerAdapter,如果你是用于 ViewPager 展示数量特别多的条目时,那么建议使用 FragmentStatePagerAdapter。