Fragment:碎片。可以看成Activity的一个控件,必须依赖于Activity才能存在。但是不同的是,这个“控件”有着自己的生命周期,和activity的生命周期类似,只是会多几个环节。在Android开发过程中有两个fragment,分别在app包下和v4包下,使用有区别,需要注意。
Fragment的生命周期

onAttace(): 当fragment被加入到activity时调用
onCreate(): 系统创建fragment的时候回调他
onCreateView(): 第一次使用的时候 fragment会在这上面画一个layout出来, 为了可以画控件 要返回一个 布局的view,也可以返回null。在这一步中加载布局文件。
onActivityCreated(): 当Activity中的onCreate方法执行完后调用。
onStart(): 和activity一致,启动Fragement 启动时回调,,此时Fragement可见
onResume(): 和activity一致 在activity中运行是可见的。激活, Fragement 进入前台, 可获取焦点时激活。
onPause(): 和activity一致 其他的activity获得焦点,这个仍然可见
onStop(): 和activity一致, fragment不可见的, 可能情况:activity被stopped了OR fragment被移除但被,加入到回退栈中,一个stopped的fragment仍然是活着的如果长时间不用也会被移除
onDestroyView(): Fragment中的布局被移除时调用。表示fragemnt销毁相关联的UI布局, 清除所有跟视图相关的资源。
onDestroy(): 销毁fragment对象, 跟activity类似了。
onDetach(): Fragment和Activity解除关联的时候调用。 脱离activity。
Fragment的管理者
FragmentManager:可以在Activity中管理fragment。可以通过getFragmentManager()方法获取这个对象,在v4的包中可以通过getSupportFragmentManager()方法获取。使用findFragmentById()或者findFragmentByTag()方法可以得到Activity中存在的fragment。也可以判断是否为空。
FragmentTransaction:碎片事物。将对Fragment产生的是操作封装成事物,由此构成一个集合,执行相应的结果。FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();这个里面存放了很多很多关于Fragment的操作。设置完操作之后,使用commit()方法提交事务,就能执行了。
网友评论