android Fragment 用法小结
Fragment 是android 3.0引入的新API,是作为Activity的子模块,必须嵌入Activity才能使用。
Activity 与 Fragment的关系:
一、依附性:
1. Fragment 必须依附于Activity 。
2.Activity 内可以包含多个Fragment,Fragment也可被多个Activity复用。
3.Activity 暂停/销毁则其内的所有Fragment都暂停/销毁 (依附性)。
4.Fragment可以响应自己的输入事件,并拥有自己的生命周期,但受其依附的Activity影响。
5.Fragment 可调用getActivity()获得所在的Activity
6.Activity 可调用FragmentManager的add()、remove()、replace()方法动态的添加、移除、替换Fragment。
二、创建Fragment:
1、继承Fragment或其子类。
2、重写相关回调方法。
3、掌握Fragment的生命周期,实现业务需求。
4、添加Fragment(XML布局中添加Fragment 或动态加载):
动态加载的方法:
撰写代码将fragment添加到一个已存在的ViewGroup. 当activity运行的任何时候,
都可以将fragment添加到activity layout.只需简单的指定一个需要放置fragment的ViewGroup.
为了在你的 activity中操作fragment事务(例如添加,移除,或代替一个fragment),
必须使用来自FragmentTransaction 的API.
可以按如下方法,从你的Activity取得一个 FragmentTransaction 的实例:
1 |
FragmentManager fragmentManager =getFragmentManager(); |
2 |
FragmentTransaction fragmentTransaction =fragmentManager.beginTransaction(); |
然后你可以使用 add() 方法添加一个fragment,
指定要添加的fragment和要插入的view.
1 |
ExampleFragment fragment = newExampleFragment(); |
2 |
fragmentTransaction.add(R.id.fragment_container,fragment); |
3 |
fragmentTransaction.commit(); |
add()的第一个参数是fragment要放入的ViewGroup,
由resource ID指定,第二个参数是需要添加的fragment.
一旦用FragmentTransaction做了改变,为了使改变生效,必须调用commit().
生命周期图:

三、实践心得:
1. 重写回调函数时, 某些回调函数需要调用父类的回调函数。如:
public void onDetach() {
super.onDetach();
Log.i("tag", "called onDetach...");
}
需要调用父类的回调函数,完成相关的操作,否则出错!
2. Fragment与Activity需要通讯时,可在 fragment中定义一个回调的interface,
并要求宿主activity实现它.当activity通过interface接收到一个回调,
必要时它可以和在layout中的其他fragment分享信息.
官方教程 :http://developer.android.com/guide/components/fragments.html
翻译文档 :http://www.open-open.com/lib/view/open1373980974450.html
Fragmrnt API 文档 :http://developer.android.com/reference/android/app/Fragment.html
android Fragment 用法小结的更多相关文章
- Android Fragment用法知识点的讲解
Android Fragment用法的讲解 碎片,它的出现是为了更好展示UI的设计,让程序更加得到充分的展示.Fragment的出现,如微信的额主界面包含多个Fragment,使得微信功能更加简洁明了 ...
- Android Fragment用法详解(2)--动态添加Fragment
在上一篇文章<Android Fragment用法详解(1)--静态使用Fragment>我们讲解了Fragment的最简单的用法.这次我们来说一说Fragment复杂一丢丢的用法.在代码 ...
- Android ViewPager用法小结
android-support-v4.jar 是谷歌提供给我们的一个兼容低版本号安卓设备的软件包.里面包囊了仅仅有在 Android 3.0 以上可用的API.而 ViewPager 就是当中之中的一 ...
- Android Fragment用法详解(1)--静态使用Fragment
先说明一下,本例子是运行在Android Studio下面的.同样的代码复制粘贴到Eclipse运行却会报错.具体原因我也没有细查.知道的哥们,留言通知下呗. Fragment,也就是碎片,本意是为了 ...
- android Fragment用法
Fragment常用的三个类:android.app.Fragment 主要用于定义Fragmentandroid.app.FragmentManager 主要用于在Activity中操作Fragme ...
- Android Fragment用法之给Activity创建事件回调
在某些案例中,可能需要Fragment与Activity共享事件.在Fragment内部定义一个回调接口是一个好方法,并且规定由持有它的Activity实现这个回调方法.当Activity通过接口接受 ...
- (转)android webview用法小结
原文地址:http://blog.csdn.net/ethan_xue/article/details/7841431 将webview里常用的东西拿出来分享下 想要webview加载页面,只需web ...
- Android Fragment使用小结及介绍
目录(?)[-] 一什么是Fragment 二Fragment的生命周期 三Fragment的两种添加方式addreplace 四两种添加方式性能比较 偶记得第一次接触Fragment,觉得好牛叉的组 ...
- Android Fragment和FragmentActivity区别和用法
Android Fragment是Android4.0以上才有的:而FragmentActivity是为了兼容4.0以下版本的Fragment使用的. 所以如果你想兼容4.0以下Android版本使用 ...
随机推荐
- Git联系oschina托管代码版本号
工作一般使用SVN,近期好像GitHub有些火.看到开源中国上也有Git的开源版本号管理. 另外看到一篇文章说Git 比 SVN 要好. 就想多了解一下Git.顺便也能够把自己平时的一些代码保存在云端 ...
- Unity+NGUI打造网络图片异步加载和本地缓存工具(一)
我们已经开发了在移动终端中,异步网络图片被装入多,在unity其中尽管AssetBundle存在,通常第一个好游戏的资源,然后加载到现场,但也有很多地方可以使用异步网络加载图像以及其缓存机制. 我也写 ...
- LCS 小结
转载链接:http://www.cnblogs.com/PJQOOO/p/3897745.html 第一步:先计算最长公共子序列的长度. 实现第一步: 设一个C[i][j]: 保存Xi与Yj的LCS的 ...
- zabbix-agent TIME_WAIT 过多
一.系统环境 操作系统: Centos 6.4 64bit zabbix-agent 版本: Zabbix agent v2.2.7 (revision 50148) (24 October 2014 ...
- Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds解
产生了一个解决这个问题的方法是在项目部署到tomcat比长45第二,当项目是比较大的,框架复杂的问题经常发生. 解决方法非常easy,找到以下这个路径中 workspace\.metadata\.pl ...
- 从头开始学JavaScript (十三)——Date类型
说明:UTC:国际协调日期 GMT:格林尼治标准时间 一.date类型的创建 使用new操作符和Date()构造函数 var now=new Date(): 传入参数:Date.parse()和Dat ...
- Swift-开发 # 1.2版本迁移
{ Parallels: 可以将一个win程序拖到mac中运行. } --类似于虚拟机 遇到的几大问题: 1.自动修改无效? --忽略它的存在,坑. 2.无止境的修改,还是错? --使用替换工具-&g ...
- Reactive Extensions(Rx)并发浅析
Reactive Extensions(Rx)并发浅析 iSun Design & Code .Net并行编程 - Reactive Extensions(Rx)并发浅析 关于Reactive ...
- CSS_img标签usemap属性图片中选择区域加入超链接
例子: <IMG usemap="#Map" alt="" src="/images/banbian.jpg"> <map ...
- Ubuntu下的用户和权限(二)
五.chown.chgrp命令 从名字就能够猜測他们是干嘛的,可是这两个命令须要root权限. chown命令的格式为:chown user:group file 中间的user : group三项 ...