Fragment

目录

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

参考:Fragment生命周期再解析

  • 创建:先有Activity,后有Fragment
  • 销毁:先是Fragment,后才Activity

4. Fragment通信问题

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

5. Fragment状态保存与恢复

参考:Fragment状态保存与恢复

6. Fragment问题集

参考:Fragment问题集

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容