Fragment

作者: blingblingson | 来源:发表于2017-09-05 21:32 被阅读51次

    目录

    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问题集

    相关文章

      网友评论

        本文标题:Fragment

        本文链接:https://www.haomeiwen.com/subject/xjupjxtx.html