一、使用Fragment
1、自定义SecondFragment
|
|
2、自定义FirstFragment
|
|
3、MainActivity
|
|
4、布局文件activity_main.xml、fragment_first.xml 和 fragment_second.xml
|
|
5、静态使用Fragment
上述为动态的使用Fragment,静态的使用方式是在布局文件里指定使用哪个Fragment:
二、Fragment的生命周期
简述
Fragment必须是依存与Activity而存在的,因此Activity的生命周期会直接影响到Fragment的生命周期。官网这张图很好的说明了两者生命周期的关系:
可以看到Fragment比Activity多了几个额外的生命周期回调方法:
onAttach(Activity)
当Fragment与Activity发生关联时调用。
onCreateView(LayoutInflater, ViewGroup,Bundle)
创建该Fragment的视图
onActivityCreated(Bundle)
当Activity的onCreate方法返回时调用
onDestoryView()
与onCreateView想对应,当该Fragment的视图被移除时调用
onDetach()
与onAttach相对应,当Fragment与Activity关联被取消时调用
注意:除了onCreateView,其他的所有方法如果你重写了,必须调用父类对于该方法的实现
测试
在上述Demo中每个Fragment里重写所有的生命周期方法以及MainActivity,并输出日志信息。如下:
1、启动程序,在MainActivity的onCreate方法中引用了FirstFragment。日志如下:
|
|
2、Start Second Fragment,使用SecondFragment替换FirstFragment。日志:
|
|
3、Go Back,由SecondFragment返回到FirstFragment。日志:
|
|
4、返回,即退出应用程序。日志:
|
|