Fragment介绍

来源:互联网 发布:js body append html 编辑:程序博客网 时间:2024/06/04 14:28
Fragment表现Activity中UI的一个行为或者一部分。可以把fragment想象成activity的一个模块化区域,有它自己的生命周期,接收属于它自己的输入事件,并且可以在activity运行期间添加和删除(有点像一个可以在不同的activity中重用的“子activity”)。 Fragment总是必须被嵌入到一个activity中。它们的生命周期直接受其宿主activity的生命周期影响。当一个activity正在运行时(处于resumed状态),我们可以独立地操作每一个fragment,比如添加或删除它们。 平板电脑的屏幕要比手机的大得多,有更多的空间来放更多的UI组件,并且这些组件之间会产生更多的交互。 和activity一样,fragment可以处于3种状态:Resumed fragment在运行中的activity中可见。 Paused 另一个activity处于前台并拥有焦点,但是这个fragment所在的activity仍然可见(前台activity局部透明或者没有覆盖整个屏幕)。 Stopped 要么是宿主activity已经被停止,要么是fragment从activity被移除但被添加到后台堆栈中。此状态的fragment仍然活着(所有状态和成员信息被系统保持着)。然而,它对用户不再可见,并且如果activity被杀死,它也会被杀死。 宿主activity的生命周期,直接影响到fragment的生命周期,以致每一个activity的生命周期的回调行为都会引起每一个fragment中类似的回调。 一旦activity到达了resumed状态,就可以自由地在activity添加和移除fragment。因此,只有当activity处于resumed状态,fragment的生命周期才可以独立变化。当activity离开resumed状态,fragment再次被activity带入其生命周期过程。 要创建一个fragment,必须创建一个 Fragment 的子类(或者是一个已存在的它的子类)。 通常,应当至少实现如下的生命周期方法:onCreate() 当创建fragment时,系统调用此方法。 在实现代码中,应当初始化想要在fragment中保持的必要组件,当fragment被暂停或者停止后可以恢复。 onCreateView() fragment第一次绘制它的用户界面的时候,系统会调用此方法。为了绘制fragment的UI,此方法必须返回一个作为fragment布局的根的view。如果fragment不提供UI,可以返回null。  onPause() 用户将要离开fragment时,系统调用这个方法作为第一个指示(虽然它并非总是意味着fragment将被销毁)。在当前用户会话结束之前,通常应当在这里提交任何应该持久化的变化(因为用户有可能不会返回)。
0 0
原创粉丝点击