ViewPager与fragment配合使用的优势

 ViewPager的功能就是可以使视图滑动,就像Lanucher左右滑动那样。分三个步骤来使用它:

 1.在住布局文件里加入ViewPager控件。

 2.加载要显示的页卡,List或List

 3.在Activity里实例化ViewPager组件,并设置它的Adapter(就是PagerAdapter,方法与ListView一样的),在这里一般需要重写PagerAdapter。

        ViewPager的适配器是PagerAdapter,它是基类提供适配器来填充页面ViewPager内部,你很可能想要使用一个更具体的实现,如FragmentPagerAdapter或FragmentStatePagerAdapter。

        在这里需要说明一下,其实ViewPager应该和Fragment一起使用,如果只是用viewpager,每次都要重新加载页面,速度比较慢(内容少的时候可能看不出来,比如一张图片), 而fragment在使用使用FragmentPagerAdapter 时,加载过一次后会缓存数据,第二次划过来的时候感觉平顺些,不过这也是建立在消耗内存的基础上的,就是以空间换取时间,像listview的viewholer优化技术一样但当有大量的显示页时,就不适合用FragmentPagerAdapter了,FragmentPagerAdapter 适用于只有少数的page情况,像选项卡。这个时候你可以考虑使用FragmentStatePagerAdapter ,当使用FragmentStatePagerAdapter 时,如果Fragment不显示,那么Fragment对象会被销毁,(滑过后会保存当前界面,以及下一个界面和上一个界面(如果有),最多保存3个,其他会被销毁掉)。但在回调onDestroy()方法之前会回调onSaveInstanceState(Bundle outState)方法来保存Fragment的状态,下次Fragment显示时通过onCreate(Bundle savedInstanceState)把存储的状态值取出来,FragmentStatePagerAdapter 比较适合页面比较多的情况。

       另外fragment在导航条方面还是比单独的viewpager有优势的。fragment与View的区别在于它有自己的生命周期,可以随时更改自己的状态便于管理。


你可能感兴趣的:(ViewPager与fragment配合使用的优势)