一.Fragment加载到Activity的两种方式
1.静态加载:以一个fragment的xml中的标签添加到activity中
2.动态加载
1>获取到FragmentManager,(getFragmentManager())并获取到transaction(fragmentmanager.begintransaction())
2>创建fragment(AFragment aFragment = new AFragment())
3>使用add方法将fragment添加到transaction中(transaction.add())
4>调用commit()方法使得transaction实例改变生效
二.FragmentPagerAdapter与FragmentStatePagerAdapter区别
前者适用于页面较少的情况,后者适用于页面较多的情况,通过源码了解,主要查看destroyItem方法中的最后一行,mcurtransaction.remove(fragment),通过这行代码了解到,FragmentStatePagerAdapter是真正释放fragment内存,在FragmentPagerAdapter的destroyItem方法中所调用的是mcurtransaction.detach(fragment),他仅仅是将fragment的页面与activity的页面抽离开来,并没有真正的销毁fragment释放内存.
三.fragment的生命周期
四.fragment通信
1.在fragment中调用activity中的方法getActivity
2.在Activity中条用Fragment中的方法,一般常用的是接口回调,在fragment中创建接口,在activity中实现接口,这样就能完成activity中调用fragment中的方法
3.在Fragment中调用Fragment中的方法,首先先通过getactivity方法,获取activity的方法,然后通过fingFragmentById获取到另外一个fragment的方法,然后进行调用
五.fragment的replace , add , remove , 方法
replace方法是将activity中顶层的fragment进行替换
add方法是将一个fragment添加到activity中
remove方法是将activity中的某个fragment进行移除