什么是fragment
Fragment意思为“片段”,它可以表示Activity中的行为或用户界面部分。我们可以在一个Activity中用多个Fragment组合来构建多窗格的UI,以及在多个Activity中重复使用某个Fragment。它有自己的生命周期,能接受自己的输入,并且可以在 Activity 运行时添加或删除Fragment(有点像在不同 Activity 中重复使用的“子 Activity”)。
简单来说,Fragment其实可以理解为一个具有自己生命周期的控件,只不过这个控件又有点特殊,它有自己的处理输入事件的能力,有自己的生命周期,又必须依赖于Activity,能互相通信和托管。
参考:https://blog.csdn.net/sun976649289/article/details/79467577
inflate方法三种重载的区别
参考: https://blog.csdn.net/lmj623565791/article/details/38171465
fragment生命周期方法
-
setUserVisibleHint()(此方法不属于生命周期方法):设置Fragment 用户可见或不可见时调用此方法,此方法在Fragment所有生命周期执行之前执行。当Fragment 可见状态改变时,将调用此方法。
获取Fragment的状态可见或不可见,通过调用getUserVisibleHint()方法获取。当Fragment是可见时则进行懒加载操作的。方法及参数:setUserVisibleHint(boolean isVisibleToUser)
(懒加载操作:只让用户看到的页面才会加载它需要展示的数据,即当Fragment可见时再进行数据加载,以提高效率)
-
onAttach():将Fragment 对象与Activity关联时,调用onAttach(Context ) 方法(方法onAttach(Activity)高版本已弃用,为兼容低版本用到,高版本适用),
调用此方法时,Fragment与Activity已完成绑定。方法及参数:onAttacth(Context context)
-
onCreate():初始化Fragment,可通过savedInstanceState 获取之前保存的值。
方法及参数: onCreate(Bundle savedInstanceState)
-
onCreateView() :初始化Fragment布局,加载布局和findViewById操作通常在此方法中完成,单不建议执行耗时的操作,如获取数据库数据。
方法及参数:onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState)
-
onActivityCreated():当Fragement 所在的Activity被启动完成后回调此方法,执行该方法时,与Fragment绑定的Activity的onCreate方法已经执行完成并返回,在该方法内可以进行与Activity交互的UI操作,
所以在该方法之前Activity的onCreate方法并未执行完成,如果提前进行交互操作,会引发空指针异常。方法及参数:onActivityCreated(Bundle savedInstanceState)
-
onStart():启动Fragment 时被回调,Fragment有不可见变为可见状态。此方法在Activity的onStart执行完立即执行,这个方法执行完Fragment界面就立即显示出来,但是还没有获取焦点,用户是不能操作的。
方法及参数:onStart()