UI fragment和fragment管理器
1、fragment是一种控制对象,activity可委派他完成一些管理用户界面的任务。管理用户
界面的fragment又称为UI fragment,他也有自己产生于布局文件的视图。activity可为多
个fragment提供多个插入位置。
2、在activity中托管一个UI fragment,有两种方法:
(1)添加fragment到activity布局中。即使用布局fragment。这种方式灵活性不够,将 fragment与activity视图捆绑在一起,在activity生命周期中无法切换fragment。
(2)在activity代码中添加fragment。
3、创建一个UI fragment的步骤与创建一个activity的步骤相同:
(1)通过定义布局文件中的组件,组装界面;
(2)创建fragment类并设置其视图为定义的布局;
(3)通过代码的方式,连接布局文件中生成的组件
4 、在Fragment.onCreate()方法中,并没有生成fragment的视图。虽然在 Fragment.onCreate()方法中配置了fragment实例,但创建和配置fragment视图是通过另 一个fragment生命周期来实现的:public View onCreateView(LayoutInflater inflater,ViewGroup parent,Bundle savedInstanceState)
5、Fragment类引入到Honeycomb时,为协同工作,Activity类被更改为含有FragmentManager类。FragmentManager类负责管理fragment并将它们的视图添加到activity的视图层级结构中。FragmentManager类具体管理的是:fragment队列;fragment事物的回退栈。
6、向处于运行状态的activity中添加fragment,一下fragment的生命方法会被一次调用:
onAttach(Activity)、onCreate(Bundle)、onCreateView(。。。)、 onActivityCreate(Bundle)、onStart(),以及onResume()方法。
7、只要fragment的状态和activity的状态保持了同步,托管activity的FragmentManager便会继续调用其他的生命周期方法以继续保持fragment与activity的状态一致,而几乎同时,他接受到了从操作系统发出的相应调用。但fragment方法究竟是在activity方法之前还是之后调用的这一点是无法保证的。