美文网首页大智收藏科技程序员
Android开发之ViewPager+Fragment

Android开发之ViewPager+Fragment

作者: YungFan | 来源:发表于2016-03-29 20:59 被阅读3722次

使用步骤

  • 1、Activity的布局文件
<android.support.v4.view.ViewPager 
     android:id="@+id/viewpager"     
     android:layout_width="wrap_content"    
     android:layout_height="wrap_content"   
     android:layout_gravity="center" >  
 </android.support.v4.view.ViewPager>
  • 2、加载要显示的Fragment,这里要注意,导入的全部是
    android.support.v4.app.Fragment,也就是v4兼容包下的Fragment类,至于为什么,看步骤3
Fragment1 f1 = new Fragment1();
Fragment2 f2 = new Fragment2();
Fragment3 f3 = new Fragment3();
fragmentContainter = new ArrayList<Fragment>();    
fragmentContainter.add(f1);
fragmentContainter.add(f2);
fragmentContainter.add(f3);
  • 3、用FragmentPagerAdapter关联上面的Fragment和ViewPager,
    FragmentPagerAdapter (android.support.v4.app.FragmentPagerAdapter)
    继承自 PagerAdapter。相比通用的 PagerAdapter,该类更专注于每一页均为 Fragment 的情况。我们只需要实现 getCount() 和 getItem()即可,从getItem()可以看出,它返回的是v4的Fragment,所以2中的问题答案就在这里了~~
pager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager())
        {

            @Override
            public int getCount()
            {

                return fragmentContainter.size();
            }

            @Override
            public android.support.v4.app.Fragment getItem(int arg0)
            {
                return fragmentContainter.get(arg0);
            }
        });

这样就可以实现滑动Fragment

重要的话

  • PageAdapter 是 FragmentPagerAdapter 以及 FragmentStatePagerAdapter 的基类,可以将上面的替换成FragmentStatePagerAdapter 。

  • FragmentStatePagerAdapter 和 FragmentPagerAdapter 的区别: FragmentPagerAdapter使用时,每一个生成的 Fragment 都将保存在内存之中,而 FragmentStatePagerAdapter 只保留了当前显示的Fragment,其他划过的Fragment离开视线后,就会被销毁;而在页面需要显示时,再生成新的实例(可以通过打印Fragment的生命周期来查看,这里就不粘贴了)。这么实现的好处就是当拥有大量的页面时,不必在内存中占用大量的内存。

相关文章

网友评论

本文标题:Android开发之ViewPager+Fragment

本文链接:https://www.haomeiwen.com/subject/bxpslttx.html