这是我参与「第四届青训营 」笔记创作活动的第[2]天
Fragment
1.Fragment是一个小的activity,点击不同的item,会显示不同的界面,这个就是Fragment
可以在不同的activity中重复使用一个Fragment,所以可以将Fragment视为activity中的模块化的组成部分。
2.Fragment有自己的生命周期,并且必须委托在activity中才能运行,所以Fragment的生命周期受activity影响,当activity销毁了,那么Fragment也就没了。
3.当activity运行的时候,可以独立操作Fragment,动态的增加移除一些Fragment,可以自己接受输入的事件。
优势
1.代码复用
activity用来管理Fragment,因为一个Fragment可以被多个activity嵌套,有个共同的业务模块就可以复用。
2.模块化
Fragment具有自己的一个生命周期。但是也是受activity影响。
3.可控性
Fragment的生命周期是寄托到activity中,Fragment可以被attach添加和detach释放。
4.切换灵活
由于Fragment是构建在views之上的,所以很容易实现动画效果,因此Fragment在屏幕切换时具有更好的控制。
基本用法
1.创建Fragment布局文件
2.创建Fragment子类,加载布局文件
3.Activity加载Fragment
3.1 静态加载:布局中绑定
3.2 动态加载:FragmentManager加载
加载方式
1.静态加载
<fragment
android:id="@+id/fragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:name="com.example.demo.fragment.Fragment"/>
2.动态加载
2.1 getSupportFragmentManager():在Activity中使用Fragment的管理器,对所有Fragment进行管理。
2.2 getFragmentManager():与 getSupportFragmentManager()功能是一样的,只是是在Fragment中使用
2.3 getChildFragmentManager():在嵌套的Fragment中,内部的fragment创建,需要使用getChildFragmentManager()
生命周期
onAttach():Fragment和Activity相关联时调用。可以通过该方法获取Activity引用,还可以通过getArguments()获取参数。
onCreate():Fragment被创建时调用。
onCreateView():创建Fragment的布局。
onActivityCreated():当Activity完成onCreate()时调用。
onStart():当Fragment可见时调用。
onResume():当Fragment可见且可交互时调用。
onPause():当Fragment不可交互但可见时调用。
onStop():当Fragment不可见时调用。
onDestroyView():当Fragment的UI从视图结构中移除时调用。
onDestroy():销毁Fragment时调用。
onDetach():当Fragment和Activity解除关联时调用。