目录
- Fragment的两种添加方式
1.1 静态添加
1.2 动态添加 - FragmentPagerAdapter与FragmentStatePagerAdapter
- Fragment生命周期
- Fragment通信问题
- Fragment状态保存与恢复
- Fragment问题集
1. Fragment的两种添加方式
1.1 静态添加
当系统创建 Activity 布局时,会实例化在布局中指定的每个 <fragment/> 片段,并为每个片段调用 onCreateView() 方法,以检索每个片段的布局。系统会直接插入片段返回的 View 来替代 <fragment> 元素
- android:name:指定要在布局中实例化的 Fragment 类
- android:id/tag:每个Fragment都需要一个唯一标识,重启 Activity 时,系统可以使用该标识来恢复片段
1.2 动态添加
通过编程方式将片段动态添加到某个现有 ViewGroup
getFragmentManager().beginTransaction().add(android.R.id.content, details).commit();
2. FragmentPagerAdapter与FragmentStatePagerAdapter
- 比较这两个类的 destroyItem() 方法会发现,前者调用了 FragmentTransaction 的 detach() 方法, 而后者调用的是它的 remove() 方法
- 也就是是说 FragmentPagerAdapter 仅仅是将 UI 分离,而 FragmentStatePagerAdapter 才是真正的回收了内存,因此后者适用于页面较多的情况
3. Fragment生命周期
- 创建:先有Activity,后有Fragment
- 销毁:先是Fragment,后才Activity
4. Fragment通信问题
- Fragment调用Activity:getActivity()
- Activity调用Fragment:接口回调
- Fragment调用Fragment:getActivirt().findFragmentById()
5. Fragment状态保存与恢复
6. Fragment问题集
参考:Fragment问题集