简介
Fragment是一种可以嵌入在Activity当中的UI片段,用来组建Activity界面的局部模块, 也可以说一个Actiivty界面可以由多个Fragment组成。其行为与Activity很相似, 有自己对应的布局(包含具体的View), 它有自己的生命周期,接收自己的输入事件,并且可以从运行中的activity中添加或移除,一个fragment必须总是嵌入在一个activity中,不能被单独使用,同时fragment的生命周期受activity的影响。
本质上会产生一个FrameLayout,它加载的布局为其子布局。
模块化:不必把所有代码全部写在Activity中,而是把代码写在各自的Fragment中。
可重用:多个Activity可以重用一个Fragment。
可适配:根据硬件的屏幕尺寸、屏幕方向,能够方便地实现不同的布局,这样用户体验更好。
演变
最初:
Android 3.0的时候添加了Fragment,android.app.fragement。在3.0及之后的版本可以在Activity中直接使用Fragment。使用getFragmentManager获得FragmentManager。
同时,为了兼容低版本的3.0以前的可以使用Fragment,就要用android.support.v4里面对应的支持库,FragmentActivity,它提供了一些操作Fragment的方法,能够和Activity中一样。使用getSupportFragmentManager获得FragmentManager。
后来以及现在:
Android版本不断更新和迭代,低版本的Android使用越来越少甚至被抛弃,v4包从11年发布的最低支持1.6版本到17年7月开始最低支持4.0版本,如今兼容性的考虑都只考虑4.0以上了。那么此时对于Fragment来说,是不是就不需要考虑兼容性的问题了。
现在官网的信息是这样子的,Android.app.Fragment写的是在API 11(3.0)的时候添加了,API 28 (9.0)的时候被弃用了,弃用了之后给了信息说用这个android.support.v4.app.Fragment,然而安卓支持库里面的东西都要被打包到Andoridx里面去了,所以长远看的话,以后应该就全是用androix.fragment.app.Fragment了。