- Fragment是什么?
- Fragment的优点
- Activity和Fragment的异同?
- Fragment的生命周期
- 何时会考虑使用Fragment?
Fragment是什么?
Fragment是Android3.0后引入的一个新的API,他出现的初衷是为了适应大屏幕的平板电脑, 当然现在他仍然是平板APP UI设计的宠儿,而且我们普通手机开发也会加入这个Fragment, 我们可以把他看成一个小型的Activity,又称Activity片段!
Fragment的优点
- 在基础性能上大幅度提高,并且占用内存降低。
- 中低端机上响应速度很快
- 以后移植平板,节省大量时间和精力。
Activity和Fragment的异同?
- Fragmentactivity 继承自Activity,用来解决android3.0 之前没有Fragment的api,所以在使用的时候需要导入support包,同时继承Fragmentactivity,这样在Activity中就能嵌入Fragment来实现你想要的布局效果。
- Activity 代表了一个屏幕的主体,而Fragment可以作为Activity的一个组成元素。
- 一个Activity可以有若干个(0或n)Fragment构成。你可以把Fragment想象成Activity中的一个控件,只不过相对于一般控件,Fragment与Activity联系更为紧密,随着Activity的生命周期变化,Fragment也随之相应不同的生命周期函数。
- Fragment不能脱离Activity而存在,只有Activity才能作为接收intent的载体。其实两者基本上是载体和组成元素的关系。
Fragment的生命周期
onAttach():当Activity和Fragment建立关联的时候调用。
onCreate():初始化Fragment,可通过参数savedInstanceState获取之前保存的值。
onCreateView(): 初始化Fragment的布局,不建议执行耗时的操作。
onActivityCreate(): 此时,Fragment绑定的Activity的onCreate方法已经执行完成并返回,在该方法内可以进行与Activity交互的UI操作,所以在该方法之前Activity的onCreate方法并未执行完成。
onStart(): 此时,Fragment由不可见变为可见状态。
onResume():此时,Fragment处于活动状态,用户可与之交互。
onPause():此时,Fragment处于暂停状态,但依然可见,用户不能与之交互。
onStop(): 此时,Fragment完全不可见。
onDestroyView(): 此时,销毁与Fragment有关的视图,但未与Activity解除绑定,依然可以通过onCreateView方法重新创建视图。通常在ViewPager+Fragment的方式下会调用此方法。
onDestroy(): 此时,销毁Fragment。通常按Back键退出或者Fragment被回收时调用此方法。
onDetach(): 此时,解除与Activity的绑定,在onDestroy方法之后调用。
何时会考虑使用Fragment?
个人建议:
- 适配不同的设备上比如手机和平板。
- 主页tab都是用Fragment,类似的一个页面下有多个布局需要切换的时候感觉用Fragment很方便。
- 用户注册登录功能,现在项目中就是这样用的。
- …