美文网首页
Fragment的生命周期,以及用法

Fragment的生命周期,以及用法

作者: 小小的开发团体 | 来源:发表于2018-08-06 20:19 被阅读0次

    Fragment 11个生命周期:

    1.onAttach(Activity) 连接宿主Activity

    2.onCreate(Bundle) 创建Fragment

    3.onCreateView(LayoutInflater, ViewGroup, Bundle)创建Fragment视图

    4.onActivityCreated(Bundle) 当宿主Activity的onCreate()执行完之后调用

    5.onStart()

    6.onResume()

    7.onPause()

    8.onStop()

    9.onDestroyView() 销毁Fragment视图,与onCreateView对应

    10.onDestroy() 销毁Fragment,与onCreate对应

    11.onDetach() 与宿主Activity断开连接,与onAttach对应

    Fragment生命周期的流程

    1、当Activity创建时,调用Fragment的onAttach->onCreate->onCreateView->onActivityCreated

    2、当Activity启动时,调用Fragment的onStart

    3、当Activity获取焦点时,调用Fragment的onResume

    4、当跳转到另一个Activity时,调用Fragment的onPause-->onStop

    5、当返回Activity时,调用Fragment的onStart->onResume

    6、销毁Activity时,调用Fragment的onDestroyView->onDestory->onDetach

    Fragment简单使用

    Fragment :在Activity中使用的碎片,有自己的布局、生命周期和输入事件

    使用Fragment步骤:

    1、创建类,并继承Fragment

    2、重写Fragment的onCreateView()生命周期方法,并返回一个View

    Fragment使用方式:

    静态加载:

    在布局文件中使用

    动态加载:

            使用FragmentManager:

                            作用:管理多个Frament之间的交互和传值的

                            android 3.0以前版本:当前Activity需要继承FragmentActivity并引入v4包

                            Activity.getFragmentManager() 3.0以后

                            FragmentActivity.getSupportFragmentManager() 3.0以前,引用v4包

                            FragmentTransaction beginTransaction() 获取Fragment事务处理对象

            使用FragmentTransaction:

                            作用:Fragment的处理事处类,可以在指定的ViewGroup上增加、更新、删除Fragment

                            add(int containerViewId, Fragment fragment) 将Fragment对象增加到指定的控件上

                            replace(int containerViewId, Fragment fragment, String tag) 替换指定控件上的Fragment

                            commit() 提交本次事务处理

    Fragment传值:

                    Bundle方式:

                                    通过Fragment.setArguments(Bundle)传值,这种方式只适用还没有显示的Fragment

                                    在Fragment中,通过Fragment.getArguments()获取Bundle

                    接口回调方式:

                                    Fragment向宿主Activity回传数据:

                                                    1、在Fragment中创建公共接口,定义一个方法形式参数为Bundle

                                                    2、声明私有的接口变量

                                                    3、在onAttach方法中完成接口变量的实例化

                                                    4、宿主Activity实现Fragment中的接口,并实现回传方法

    Fragment与回退栈:

                作用:因在同一ViewGroup中显示多个Fragment,因此需要回退到上一次的Fragment时,需要回退栈

                FragmentTransaction.addToBackStack(String name) 将当前的Fragment增加到回退栈中

    相关文章

      网友评论

          本文标题:Fragment的生命周期,以及用法

          本文链接:https://www.haomeiwen.com/subject/kmzgvftx.html