00. Fragment,就是一个子activity, 便于合理布局来达成应用; 可以做为Activity中的一个成员部分;
01. Fragment的特性
a. 具备生命周期;
b. 必须委托在activity中才能运行;
02. Fragment 的使用方法
step1. 配置fragment模块
step2. 配置fragment布局(为便于控制,相应的组件对象需要配置id)
Step3. 配置Activity ,并添加 fragment
Setp4.配置fragment,并关联相应的成员组件
Step5. 最简易的fragment已经基本完成
Step6. 一个Activity中,配置多个fragment
*** 经测试,二个fragment的name,是可以一样的,只要二个fragment 的id不一样就行了
03. 动态加载 fragment
step1. 配置activity,
Step2. Activity功能配置及效果
Step3. 历史栈的现象
a.未添加到历史栈中
b. 添加到历史栈
04. Activity 与 fragment 之间数据的传递
Step1. 加载 fragment前,配置参数,并加入到 fragment中
Step2. 获取和使用参数
05. 通过接口单元进行通讯
主体思想是构建一个接口单元,在Activity中创建 fragment 的时候,传入接口,在fragment中,通过传入的接口进行函数调用,以达到数据传输的需求
Step1. fragment 界面配置
Step2. 在Activity中配置交互布局
Step3.接口定义
Step4. fragment中功能按钮的配置及接口函数的调用
Step5. 从 activity中逆向回调fragment中的相应业务
06. Fragment生命周期
a. 生命周期的过程
fragement实际的生命轨迹,不一定是上图完整的流程,依据操作的不同,存在不同的轨迹
为有效检测不同操作情况下,不同fragment 的生命轨迹,做出如下配置:
Step1. Activity配置
Step2. 二个fragment, 只配置背景色用以识别
Step3. 为测试用的2 个fragment 配置完整的生命周期事件日志(override), 并做日志 --> 便于了解生命轨迹;
Step4. Activity 功能配置
至此,准备工作已完成,现在将根据是否加入历史栈来分别跟踪不同情况下的fragment生命轨迹
A: 不加入历史栈
-------------------------------------------------------------------------------------------------------------------------------------------
B: 加入历史栈
===================================================================================
C:直接退出程序
====================================
在退出程序前,二个fragment共执行了五组,在最后退出时,对应的五组全部释放