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的生命周期

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

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

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

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才会走下面的生命周期方法:

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