美文网首页五大组件相关
Android进阶二十:Fragment介绍&使用方法解

Android进阶二十:Fragment介绍&使用方法解

作者: BlingBest | 来源:发表于2018-07-16 10:02 被阅读15次

    定义:

    Android界面中的一部分,可理解为模块化的Activity

    1 Fragmeng不能独立存在,必须嵌入到Activity中

    2 Fragment具有自己的生命周期,接受它自己的事件,并可以在Activity运行时被添加或删除

    3 Fragment的生命周期直接受所在的Activity的影响,如,当Activity暂停时,它拥有的所有Fragment都暂停

    作用:

    支持动态,灵活的界面设计

    1 Fragment从Android 3.0后引入

    2 在低版本Android 3.0前使用Fragment,需要采用android-support-v4兼容包

    生命周期解析

    详解每个方法的调用场景:

    onAttach:Fragment和Activity建立关联的时间调用(获取activity的传递的值)

    onCreateView:为Fragment创建视图(加载布局)时调用(给当前的fragment绘制UI布局,可以使用线程更新UI)

    onActivityCreate:当Activity中的onCreate方法执行完后调用(表示activity执行onCreate方法完成了的时候会调用此方法)

    onDestoryView:Fragment中的布局被移除时调用(表示fragment销毁相关联的UI布局)

    onDetach:Fragment和Activity解除关联的时候调用(脱离Activity)

    fragment生命周期解析

    1 当一个fragment被创建的时候:

    onAttch()-onCreate()-onCreateView()-onActivityCreated()

    2 当这个fragment对用户可见的时候,它会经历以下状态

    onStart()-onResume()

    3 当这个fragment进入后台模式的时候,它会经历以下状态

    onPause()-onStop()

    4 当这个fragment被销毁了(或者持有它的activity被销毁了)

    onPause()-onStop()-onDestoryView()-onDestory()-onDetach()

    5 就像Activity一样,在以下的状态中,可以使用Bundle对象保存一个fragment的对象

    onCreate()

    onCreateView()

    onActivityCreated()

    其他场景的调用

    屏幕灭掉

    onPause()-onSaveInstanceState()-onStop()

    屏幕解锁

    onStart()-onResume()

    切换到其他Fragment

    onPause()-onStop()-onDestoryView()

    切换回本身的Fragment

    onCreateView()-onActivityCreated()-onStart()-onResume()

    回到桌面

    onPause()-onSaveInstanceState()-onStop()

    回到应用

    onStart()-onResume()

    退出应用

    onPause()-onStop()-onDestoryView()-onDestory()-onDetach()

    Fragment与Activity生命周期对比

    具体使用

    1 由于Fragment作为Acitivty的一部分,所有Fragment的使用一般是添加到Activity种

    2 将Fragment 添加到Activity中一般有两个方法:

    a 在Activity的layout.xml布局文件中静态添加

    b 在Activity的.java文件中动态添加

    方法1 :在Activity的layout.xml布局文件中静态添加

    Activity的布局文件:

    Fragment的布局文件

    Fragment的.java文件

    方法2 在Activity的.JAVA文件中动态添加

    1 在Activity的布局文件定义1占位符(FrameLayout),这样做的好处是,可动态在Activity中添加不同的Fragment,更加灵活

    Activity的布局xml:

    Activity的.java文件

    Activity与Fragment通信

    问题1:Activity如何传递数据到Fragment:采用Bindle方式

    activity fragment

    问题2 Fragment如何传递数据到Activity:采用接口回调方式

    把实现了某一接口的类所创建的对象的引用赋给该接口声明的变量,通过该接口变量调用该实现类对象的实现的接口方法

    1 设置回调接口,该接口用于Activity与Fragment通信

    2 设置Fragment的类文件

    3 设置Activity的类文件

    总结

    相关文章

      网友评论

        本文标题:Android进阶二十:Fragment介绍&使用方法解

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