2018-08-07

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增加到回退栈中

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 彭臻华 文 1 “罗佳,您的花,请签收。”今天是情人节,早晨八点过五分,罗佳刚到办公室,花店小哥随后就到,给她送...
    彭臻华阅读 555评论 0 1
  • 片段一 上午通讲第三单元“大自然的启示”,昨天小组合作解决了字词和结构,今天课上从《自然之道》中引申出什么是“道”...
    牛宇阅读 447评论 1 1
  • 今天的标题有一点长,内容也有一些无厘头,容我细细道来! 事情是这样的:每天4:15分,闹钟会滴滴答答的...
    胡永群阅读 590评论 2 50
  • 01 这两天刚好有时间去看个电影,翻开近期正在售卖的电影票,发现居然有《嫌疑人x的献身》,有些讶异。一直记得这部影...
    辰苓阅读 241评论 0 0
  • 从南到北,跨越大半个祖国,我来到了大连。在大连,我第一次见到了雪。 依旧记得第一次看到雪时的情况。当好友都欢呼雀跃...
    永自然阅读 246评论 0 1