android api gui 学习笔记---Fragment(片段)

来源:互联网 发布:标准数据公司 编辑:程序博客网 时间:2024/05/22 20:28

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() 注册一个侦听返回栈变化的侦听器。
7.执行片段事务

   返回栈中存储的是事务,不是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 等操作


原创粉丝点击