首页 > 代码库 > Fragment总结

Fragment总结

/*---------------------------------------- *-描述--Fragment例题总结. *-描述--S1.Fragment的生命周期 *  ---Fragment的相关内容 *  1.个Fragment 必须总是被嵌入到一个Activity 中,它的生命周期直接依赖于宿主Activity生命周期 *  2.要创建一个Fragment 必须创建一个Fragment 的子类,或者继承自另一个已经存在的Fragment的子类 *      并重写 onCreate()、onCreateView()、onPause()等相关方法 * *  ---Fragment的相关方法及属性 *  onCreate()  //创建Fragment时被创建。该方法只会被回调一次 *  onCreateView()  //每次创建、绘制该Fragment的View组件时回调该方法,Fragment会调用该方法返回的View对象 *  onPause()   //暂停Fragment时回调该方法,指示用户会离开这个Fragment *  onAttach()  当该Fragment被添加到Activity时被回调。该方法只会被调用一次 *  onActivityCreated()   当Fragment所在的Activity被启动完成后回调该方法。当Activity *      的onCreate()方法之后调用该方法 *  onStart()   启动Fragment时被回调 *  onResume()  恢复Fragment时回调该方法,在onStart()方法后一定会回调该方法 *  onStop()    停止Fragment时被回调 *  onDestroyView() 销毁该Fragment所包含的View组件时调用 *  onDestroy() 销毁Fragment时被回调 *  onDetach()  将该Fragment从Activity中删除、替换完成时回调该方法,在onDestroy() *      方法后一定会回调onDetach()方法 * *  ---Fragment的11个生命周期 *  静态添加的Fragment创建时:onAttach() => onCreate() => onCreateView() => onStart() => onResume() *  失去焦点:onPause() => onStop() *  重新获取焦点:onStart() => onResume() *  退出:onPause() => onStop() => onDestroyView() => onDestroy() => onDetach() *      onActivityCreated()静态添加初始化时调用 *      new XXXFragment()时并不执生命周期,而是在提交(.commit())后才走相应的生命周期方法 * *  ---静态创建的Fragment与Activity生命周期之间的关系 *  创建时: *      F-onAttach() => F-onCreate() => F-onCreateView() => A-onCreate() => F-onActivityCreated() *      => F-onStart() => A-onStart() => A-onResume() => onResume() *  暂停: *      F-onPause() => A-onPause() => F-onStop() => A-onStop() *  重入: *      F-onStart() => A-onStart() => A-onResume() => onResume() *  退出: *      F-onPause() => A-onPause() => F-onStop() => A-onStop() => F-onDestroyView() => F-onDestroy() *      => F-onDetach() => A-onDestroy() *  --其他 *  跳转到下一个活动:onPause() => onStop() 回来:onStart() => onResume() *-描述--S2.静态Fragment的创建 *  1.定义类继承Fragment 重写一些方法,绑定布局 *  2.将Fragment加入到Activity的布局中( <fragment/> ) *  在Xml了里面配置Fragment,当作一个控件来使用 * *-描述--S3.动态Fragment的创建 *  1.定义类继承Fragment *  2.在activity中添加Fragment *      1.获得碎片管理器 *      2.通过管理器得到一个操作碎片的事务 *      3.通过碎片事物操作碎片 * *-描述--S4.Fragment的传值 *  ---Fragment与Activity之间的传值 *  方式一:拿到对方的对象 *      如Activity拿到Fragment的对象 getSupportFragmentManager().findFragmentByTag("fragment1_tag") *      反过来getActivity() *  方式二:Activity传递给Fragment *      .setArguments(bundle)、getArguments() *  方式三:Fragment传递给Activity *      接口回调方式 * *  ---Fragment之间的传值 *  方式一:拿到对方的对象。获得Activity对象,通过Activity对象获得FragmentManager, 拿到Fragment的对象 *      Fragment之间通过拿到对方的对象的方式传值,易发生空指针异常的问题。使用时要明确对应的生命周期方 *      法,避免未创建时去获取了空引用引发空指针异常。当同时加载多个Fragment时,获取对方的引用应放在 *      onActivityCreated()中,这时碎片已创建,获取到的引用才不会为空 *  方式二:接口回调的方式 * *-描述--S5.Fragment性能优化 * *-描述--B1.None. *---------------------------------------------------------------------------*/

 

Fragment总结