五大组件相关

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

2018-07-16  本文已影响15人  BlingBest

定义:

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的类文件

总结

上一篇下一篇

猜你喜欢

热点阅读