前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android开发之ViewPager+Fragment

Android开发之ViewPager+Fragment

作者头像
YungFan
发布2018-04-24 15:01:50
6900
发布2018-04-24 15:01:50
举报
文章被收录于专栏:学海无涯学海无涯
使用步骤
  • 1、Activity的布局文件
代码语言:javascript
复制
<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
代码语言:javascript
复制
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中的问题答案就在这里了~~
代码语言:javascript
复制
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的生命周期来查看,这里就不粘贴了)。这么实现的好处就是当拥有大量的页面时,不必在内存中占用大量的内存。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016.03.29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用步骤
  • 重要的话
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档