Android Fragment生命周期

来源:互联网 发布:ahc正品验证软件 编辑:程序博客网 时间:2024/06/05 03:45

Android Fragment生命周期

1、在界面中使用Fragment,需要在布局文件中使用fragment。

name指定显示的Fragment,该Fragment必须有一个无参数构造函数。
<fragment        android:id="@+id/contant"        android:name="com.blog.demo.component.LifeFragment"          android:layout_width="match_parent"          android:layout_height="45dp" />

2、Fragment生命周期如下


3、Fragment与Activity的生命周期比较


4、Fragment使用show和hide相互切换。

如果当前界面已有Fragment,调用hide方法隐藏。显示Fragment时,如果已经存在,直接调用show方法显示,否则调用add方法添加。
private String mCurTag;private void changeToFragment(String tag) {if (mCurTag != null && mCurTag.equals(tag)) {return;}FragmentManager fm = getSupportFragmentManager();FragmentTransaction ft = fm.beginTransaction();if (mCurTag != null) {Fragment fragment = fm.findFragmentByTag(mCurTag);if (fragment != null) ft.hide(fragment);}Fragment fragment = fm.findFragmentByTag(tag);if (fragment != null) {ft.show(fragment);} else {fragment = new LifeFragment(tag);ft.add(R.id.container, fragment, tag);}ft.commitAllowingStateLoss();mCurTag = tag;}
注意点:
(1)添加fragment时,调用fragment的onAttach到onResume的方法。原有的fragment会调用onHiddenChanged方法,参数为true。
(2)在两个存在的fragment切换时,fragment不会影响Activity的生命周期,只调用onHiddenChanged方法,可根据hidden参数来区分显示还是隐藏。
(3)在切换FragmentActivity时,所有的fragment都会调用相应的生命周期方法。
(4)当切回显示FragmentActivity时,当前的fragment显示,其他的fragment的isHidden方法返回false。


0 0