Fragment-1-介绍

参考博客

简介

fragment: 碎片,  用于多屏显示 可以把activity里面的逻辑进行分离. Fragment是activity的界面中的一部分或一种行为. 可以多个Fragment组合到一个activity中来创建一个界面. 并且可以在多个activity中重用一个Fragment可以把Fragment任务模块化的一段activity,它具有自己的生命周期接收它自己的事件,并可以在activity运行时被添加或删除

 

Fragment不能独立存在,它必须嵌入到activity中,而且Fragment的生命周期直接受所在的activity的影响。如:当activity暂停时,他拥有的所有的Fragment都暂停了,当activity销毁时,他拥有的所有Fragment都被销毁。然而,当activity运行时(在onResume()之后,onPause()之前),可以单独地操作每个Fragment,比如添加或删除它们。当中执行上述针对Fragment的事务时,可以将事务添加到一个栈中,这个栈被activity管理,栈中的每一条都是一个Fragment的一次事务。有了这个栈,就可以反向执行Fragment的事务,这样就可以在Fragment级支持“返回”键(向后导航).

 

当向activity中添加一个Fragment时,它须置于ViewGroup控件中,并且需定义Fragment自己的界面。可以在layout.xml布局文件中声明Fragment,元素为:<fragment>;也可以在代码中创建Fragment,然后把它加入到ViewGroup控件中。然而,Fragment不一定非要放在activity的界面中,它可以隐藏在后台为activity工作。

Fragment生命周期

下图为fragment的生命周期(它所在的activity处于运行状态)

注意一点: onCreateView方法执行时, 要求返回一个view, 如果返回为空, 报错. 即是说, fragment上面必须有view才能被显示。
 
fragment与activity的生命周期密切相关:

Fragment的派生类

DialogFragment

    显示一个浮动的对话框。使用这个类创建对话框是替代activity创建对话框的最佳选择。因为可以把fragmentdialog

放入到activity的返回栈中,使用户能再返回到这个对话框。

 

ListFragment

    显示一个列表控件,就像ListActivity类,它提供了很多管理列表的方法,比如onListItemClick()方法响应click事件。

 

PreferenceFragment

    显示一个由Preference对象组成的列表,与PreferenceActivity相同。它用于为程序创建“设置”activity。

 

Fragment的使用方式

1. 在activity的布局文件中配置<fragment>标签, 然后写个类继承Fragment, 再写其对应的布局文件
    这种方法其实相当于把fragment布局文件中的东西include到activity中.
2. 在Activity中使用FragmentManager动态添加, 删除, 替换. 
    本质上也还是吧fragment中的东西include到activity中, fragment中的东西, activity中都可以用.
 
原文地址:https://www.cnblogs.com/gaoxiaoyuan/p/3835804.html