Fragment的两种添加方式下的生命周期

Fragment的添加到activity中有两种方式,这两种方式添加的fragment的生命周期有一点的区别。

1.静态添加Fragment,将fragment直接放在activity的布局xml中。

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:layout_width="match_parent"  
    android:layout_height="match_parent"  
    android:baselineAligned="false" >  
  
    <fragment  
        android:id="@+id/fragment1"  
        android:name="com.harvic.com.harvicblog2.Fragment1"  
        android:layout_width="0dip"  
        android:layout_height="match_parent"  
        android:layout_weight="1" />  
  
    <fragment  
        android:id="@+id/fragment2"  
        android:name="com.harvic.com.harvicblog2.Fragment2"  
        android:layout_width="0dip"  
        android:layout_height="match_parent"  
        android:layout_weight="1" />  
  
</LinearLayout>  

这种情况下的fragment的生命周期为:
启动activity的时候,frament的生命周期

1.png

点击home键,回到桌面界面的frament的生命周期

2.png

重新进入界面时,frament的生命周期

3.png

点击back界退出时,frament的生命周期

4.png

2.动态添加Fragment,fragment的生命周期。

动态添加fragment的代码如下:

      FragmentManager manager = getSupportFragmentManager();
            FragmentTransaction transaction =               manager.beginTransaction();
            Fragment1 fragment1 = new Fragment1();
            transaction.add(R.id.fragment_container, fragment1);
            transaction.commit();

只要当执行FragmentTransaction 执行commit()后,fragment才会走下面的生命周期方法:

Image.png

点击home键,重新进入界面时,点击back界退出时这三种情况的生命周期方法和静态添加的相同。 这里就不说了。
FragmentTransaction 执行remove()时:fragment生命周期方法和点击back键相同。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容