1. 片段必须始终嵌入在 Activity 中,其生命周期直接受宿主 Activity 生命周期的影响
2. Activity 中的每个返回栈条目都是一条已发生片段事务的记录。 返回栈让用户可以通过按返回按钮撤消片段事务
3.还可以将没有自己 UI 的片段用作 Activity 的不可见工作线程(有啥用?)
4.生命周期:https://developer.android.google.cn/guide/components/fragments.html#Creating
5.可以通过两种方式向 Activity 布局添加片段:在 Activity 的布局文件内声明片段;或者通过编程方式将片段添加到某个现有 ViewGroup
6.管理片段
- 通过
findFragmentById()
(对于在 Activity 布局中提供 UI 的片段)或findFragmentByTag()
(对于提供或不提供 UI 的片段)获取 Activity 中存在的片段。 - 通过
popBackStack()
(模拟用户发出的返回命令)将片段从返回栈中弹出。 - 通过
addOnBackStackChangedListener()
注册一个侦听返回栈变化的侦听器。
返回栈中存储的是事务,不是fragment
如果您没有在执行移除片段的事务时调用 addToBackStack()
,则事务提交时该片段会被销毁,用户将无法回退到该片段。 不过,如果您在删除片段时调用了 addToBackStack()
,则系统会停止该片段,并在用户回退时将其恢复
8.与 Activity 通信
9. 创建对 Activity 的事件回调, 自定义的回调接口,Fragment的onAttach的时候,获取回调对象
public void onAttach(Activity activity) { super.onAttach(activity); try { mListener = (OnArticleSelectedListener) activity; } catch (ClassCastException e) { throw new ClassCastException(activity.toString() + " must implement OnArticleSelectedListener"); } }10.生命周期:
默认情况下,Activity 停止时会被放入由系统管理的 Activity 返回栈;仅当您在移除片段的事务执行期间通过调用 addToBackStack()
显式请求保存实例时,系统才会将片段放入由宿主 Activity 管理的返回栈。
11.与 Activity 生命周期协调一致,不过,片段还有几个额外的生命周期回调,用于处理与 Activity 的唯一交互,以执行构建和销毁片段 UI 等操作