为托管UI fragment,activity必须:
- 在其布局中为fragment的视图安排位置;
- 管理fragment实例的生命周期。
fragment的生命周期
。类似于activity的生命周期,它具有停止、暂停以及运行 状态,也拥有可以覆盖的方法,用来在关键节点完成一些任务。,许多方法对应着activity 的生命周期方法,这种对应非常重要。因为fragment代表activity工作,所以它的状态应该反映activity的状态。 显然,fragment需要相对应的生命周期方法来处理activity的工作。
fragment生命周期与activity生命周期的一个关键区别就在于,fragment的生命周期方法由托 管activity而不是操作系统调用。操作系统不关心activity用来管理视图的fragment。fragment的使 用是activity内部的事情。
托管的两种方式
- 在activity布局中添加fragment;
- 在activity代码中添加fragment。
第一种方式就是使用布局fragment。这种方式简单但不够灵活。在activity布局中添加 fragment,就等同于将fragment及其视图与activity的视图绑定在一起,并且在activity的生命周期 过程中,无法替换fragment视图。
第二种方式比较复杂,但也是唯一可以动态控制fragment的方式。何时添加fragment以及随 后可以完成何种具体任务由你自己定;也可以移除fragment,用其他fragment代替当前fragment,然后重新添加已移除的fragment。
因而,为追求真正灵活的UI设计,就必须通过代码的方式添加fragment。