一、Fragment 加载到 Activity 的两种方式
1. 添加 Fragment 到 Activity 的布局文件当中:(添加的 Fragment 要加入name属性,即路径)
2. 动态在 activity 中添加 fragment
//步骤一:添加一个 FragmentTransaction 的实例
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction transaction = fragmentManager.beginTransaction();
//步骤二:用 add() 方法加上 Fragment 的对象 myFragment
MyFragment myFragment = new MyFragment();
transaction.add(R.id.my_container,myfragment,"myFragment");//R.id.my_container 是容器在 Activity 的标志位
transaction.addToBack("myFragment");
//步骤三:调用 commit() 方法使得 fragmentTransaction 实例的改变生效
transaction.commit();
二、FragmentPagerAdapter 与 FragmentStatePagerAdapter 区别
FragmentPagerAdapter
适用于页面较少的情况,FragmentStatePagerAdapter
适用于页面较多的情况
1. ViewPager 页面切换的情况下:
FragmentStatePagerAdapter 在 destroyItem()
方法中 remove 掉了 fragment,因此内存被回收了。
FragmentPagerAdapter 在 destroyItem()
方法中 detach 了 fragment,因此没有回收内存。
三、Fragment 生命周期
四、Fragment 通信
1. 在 Fragment 中调用 Activity 中的方法,getActivity
2. 在 Activity 中调用 Fragment 中的方法,接口回调
3. 在 Fragment 中调用 Fragment 中的方法,findFragmentById
五、Fragment 的 replace、add、remove 方法
add 覆盖原 fragment 添加入一个新 fragment 后, 原来的 fragment 仍然存活;
replace 是先 remove 掉相同 id 的所有 fragment 然后在 add 当前的这个 fragment