fragment的声明周期有哪些?

Fragment是在Android 3.0(API level 11)引入的API技术,旨在提高代码重用性和改善用户体验,可以将Activity中的UI组件进行分组和模块化管理。Fragment声明周期的主要阶段包括:

  1. onAttach(Context context):当Fragment与Activity发生关联时被调用。这是Fragment生命周期中的第一个方法,只会被调用一次。在这个方法中,可以通过Fragment.getActivity()方法获取与Fragment关联的Activity实例,但此时Fragment的视图尚未初始化,因此不能操作视图。
  2. onCreate(Bundle savedInstanceState):在Fragment创建时被调用。这也是一个只会被调用一次的方法。可以在Bundle对象中获取一些在Activity中传过来的数据,通常会在该方法中读取保存的状态,获取或初始化一些数据。注意,在该方法中不要进行耗时操作,否则窗口可能无法及时显示。
  3. onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState):在创建和绘制Fragment的视图组件时被调用。Fragment会返回该方法创建的视图组件。其中,inflater用于装载布局文件,container是Fragment标签的父标签对应对象,savedInstanceState参数可以获取Fragment之前保存的状态。
  4. onViewCreated(View view, Bundle savedInstanceState):在创建完Fragment中的视图对象后被调用。该方法中的view参数就是onCreateView方法中返回的视图。此时,可以对视图进行初始化操作。
  5. onActivityCreated(Bundle savedInstanceState):当Fragment的宿主Activity的onCreate方法执行完毕后被调用。这表示Activity的窗口已经初始化完成。从这时开始,可以在Fragment中使用getActivity().findViewById(Id)来操作Activity中的视图。但需要注意的是,此时Fragment虽然已经显示在UI上,但还不能进行互动,因为onResume方法还未执行完毕。
  6. onStart():当Fragment对用户可见时被调用。这标志着Fragment已经进入可见状态,但此时还不能与用户进行交互。
  7. onResume():在onStart()方法之后被调用。此时,Fragment已经可以与用户进行交互了。
  8. onPause():当Fragment进入“后台模式”时被调用。此时,Fragment不再与用户进行交互,可能是因为其宿主Activity被暂停了,或者是因为一个Fragment操作正在修改它。
  9. onStop():当Fragment对用户不可见时被调用。这可能是因为其宿主Activity被停止了,或者是因为一个Fragment操作正在修改它。
  10. onDestroyView():当Fragment中的视图被移除时被调用。此时,可以清理与视图相关的资源。
  11. onDestroy():在销毁Fragment时被调用。这是Fragment生命周期中的最后一个方法,只会被调用一次。在该方法中,可以进行最终的清理工作。
  12. onDetach():当Fragment从Activity中被删除或替换完成时调用。该方法在onDestroy()方法之后被调用,只会被调用一次。此时,Fragment与Activity的关联被取消。

总的来说,Fragment的生命周期与其宿主Activity的生命周期紧密相关,但Fragment也有自己独立的生命周期方法和回调。这些方法和回调为开发者提供了在Fragment生命周期的不同阶段执行代码的机会。

猜你喜欢

转载自blog.csdn.net/qq_43664361/article/details/143327946