首页 > 代码库 > Android Fragment

Android Fragment

  1. Fragment类:Android 3.0引入,代表Activity的子模块,有自己的生命周期,但也受Activity生命周期的控制,接受自己的输入事件。当Activity处于活动状态时,程序员可以通过方法独立操作Fragment,对于大多数Fragment会重写下面几个方法:
    • onAttach:当Fragment被添加到Activity时被调用,该方法只会被调用一次
    • onCreate:初始化view之外的对象,只会调用一次,在onAttach和onCreateView之间调用
    • onCreateView:返回View作为Fragment要显示的组件
    • onPause:离开Fragment时被调用
    • clipboard
    •  
  2. Fragment有如下特征
    • Fragment可以调用getActivity获取它所在的Activity,Activity可以调用FragmentManager的findFragmentById或者findFragmentByTag方法获取Fragment对象,在Activity的运行过程中,可以调用FragmentTransaction的add(),remove(),replace()动态的添加删除或者替换Fragment
    • 一个Activity可以同时组合多个Fragment,一个Fragment可以被多个Activity复用

  3. Activity中添加Fragment的方式:
    • 布局文件中使用<fragment android:name="fragment的实现类名">
    • 代码中通过FragmentTransaction对象的add()方法
  4. Fragment与Activity之间的通信
    • 在Activity中创建Bundle包,然后调用Fragment.setArguments方法即可把数据发给Fragment,Fragment中可以调用getArguments方法获取
    • Fragment向Activity传送数据,首先在Fragment中定义一个内部接口,让Activity实现该接口,这样Fragment中就可以回调Activity的方法把数据传给Activity

  5. fragment和activity生命周期最重要的不同之处是它们如何存储在各自的back stack中。
    Activity停止时,是存在一个由系统维护的back stack中,但是当fragment停止(被remove)时,需要程序员显示地调用addToBackStack() ,并且fragment是存在一个由宿主activity掌管的back stack中。

 

Android Fragment