fragment生命周期图解
fragment与activity对应的生命周期
场景演示 :
切换到该Fragment
onAttach->onCreate->onCreateView->onActivityCreated
->onStart-> onResume
屏幕灭掉:
onPause->onSaveInstanceState->onStop
屏幕解锁
切换到其他Fragment:
onPause->onStop->onDestroyView
切换回本身的Fragment:
onCreateView->onActivityCreated->onStart->onResume
回到桌面
onPause->onSaveInstanceState->onStop
回到应用
onStart-> onResume
退出应用
onPause->onStop->onDestroyView->onDestroy->onDetach
fragment知识点:
- fragment不能独立存在,它必须嵌入到 activity 中,而且 Fragment 的生命周期直接受所在的 activity 的影响,对于一个activity有多个页面的需求时,可以使用fragment。
- fragment是受activity生命周期影响,但在它所属activity处于onPause和onStop之间,是可以对其生命周期进行操作
- fragment的简单操作:
(1) 先定义一个viewgroup装载fragment,如
<FrameLayout
android:id="@+id/fragmentcontainer"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
</FrameLayout>
(2)利用Activity的getSupportFragmentManager()方法得到FragmentManager对象,再从FragmentManager对象的beginTransaction()方法得到FragmentTransaction对象,利用FragmentTransaction对象对fragment进行操作(add(),remove(),replace()等方法),操作完成后需要调用commit()方法。具体如下:
FragmentTransaction ft = activity.getSupportFragmentManager().beginTransaction();
//添加一个fragment
ft.add(R.id.fragmentcontainer, fragment);
//显示某个fragment
ft.show(fragment);
//隐藏某个fragment
ft.hide(fragment);
//删除某个fragment
ft.remove(fragment);
....
//最后要commit()
ft.commit():
以上是本人对fragment的一些理解,欢迎纠错补充。