Fragment

目录

  1. Fragment的两种添加方式
    1.1 静态添加
    1.2 动态添加
  2. FragmentPagerAdapter与FragmentStatePagerAdapter
  3. Fragment生命周期
  4. Fragment通信问题
  5. Fragment状态保存与恢复
  6. Fragment问题集

1. Fragment的两种添加方式

1.1 静态添加

当系统创建 Activity 布局时,会实例化在布局中指定的每个 片段,并为每个片段调用 onCreateView() 方法,以检索每个片段的布局。系统会直接插入片段返回的 View 来替代 元素

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

参考:Fragment生命周期再解析

Fragment_第1张图片
  • 创建:先有Activity,后有Fragment
  • 销毁:先是Fragment,后才Activity

4. Fragment通信问题

  • Fragment调用Activity:getActivity()
  • Activity调用Fragment:接口回调
  • Fragment调用Fragment:getActivirt().findFragmentById()

5. Fragment状态保存与恢复

参考:Fragment状态保存与恢复

6. Fragment问题集

参考:Fragment问题集

你可能感兴趣的:(Fragment)