频道栏目
首页 > 程序开发 > 移动开发 > Android > 正文
Android面向面试:Fragment内容复习
2018-02-12 11:54:05      个评论    来源:听风-Android进阶  
收藏   我要投稿

Fragment复习

Fragment为什么被称为第五大组件

使用频率高,有自己的生命周期,同时可以灵活的加载到Activity中去。它是依赖于Activity的,不能单独存在。

Fragment的加载

静态加载

在xml布局中使用fragment标签加载进来,name指定对应的Fragment即可。

动态加载

// 获取Fragment管理器
FragmentManager fm = getFragmentManager();
//开启事务
FragmentTransaction transaction = fm.beginTransaction();
DemoFragment mDemoFragment = new DemoFragment();
//将Fragment加载到Activity中
transaction.replace(R.id.content_layout, mDemoFragment);
//将该Fragment添加到回退栈中
transaction.addToBackStack("demoFragment");
//提交
transaction.commit();

FragmentPagerAdapter和FragmentStatePagerAdapter的区别

Fragment和ViewPager结合使用的时候,可能会用到FragmentPagerAdapter和FragmentStatePagerAdapter

FragmentPagerAdapter适用于页面较少的情况;FragmentStatePagerAdapter适用于页面较多的情况,因为它在切换页面时,进行了内存回收。 区别在于destroyItem方法,FragmentPagerAdapter中只是将视图解绑mCurTransaction.detach((Fragment)object);,并未从Adapter中移除。FragmentStatePagerAdapter中进行了remove操作mCurTransaction.remove(fragment);,可以被垃圾回收器直接回收。

2. Fragment的生命周期

Activity和Fragment的生命周期之前的关系

这里写图片描述

解释一下,比Activity多出来的几个生命周期方法:

onAttach():和Activity关联时调用 onCreateView():创建Fragment视图 onActivityCreated():当Activity调用了onCreate时调用 onDestoryView:Fragment视图被移除时调用 onDetach:Fragment和Activity取消关联时调用。

3. Fragment之间的通信

和Activity通信:

在Fragment中通过getActivity()就可以操作Activity中相关的方法。

在Activity中调用Fragment中的方法

在Fragment中创建一个接口,让Activity实现该接口,进行接口回调执行。

Fragment和Fragment之间通信

在Fragment中获取Activity,然后通过Activity通过findFragmentById()获取另一个Fragment,即可进行通信。

4. Fragment管理器:FragmentManager

FragmentManager一般是用来操作Fragment的,但是直接操作Fragment的是FragmentTransaction而不是它自己。

FragmentTransaction的常用Api:

replace:替换Fragment实例,是remove和add的结合 add:将Fregment添加到对应的id布局中 remove:将Fragment从Activity中移除 addToBackStack:将Fragment添加到回退栈中 
点击复制链接 与好友分享!回本站首页
上一篇:android aidl实现跨进程通信
下一篇:android 输入系统 映射文件kl
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站