Fragment的生命周期,以及用法

2018-08-06  本文已影响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增加到回退栈中

上一篇下一篇

猜你喜欢

热点阅读