- Fragment类:Android 3.0引入,代表Activity的子模块,有自己的生命周期,但也受Activity生命周期的控制,接受自己的输入事件。当Activity处于活动状态时,程序员可以通过方法独立操作Fragment,对于大多数Fragment会重写下面几个方法:
- Fragment有如下特征:
- Fragment可以调用getActivity获取它所在的Activity,Activity可以调用FragmentManager的findFragmentById或者findFragmentByTag方法获取Fragment对象,在Activity的运行过程中,可以调用FragmentTransaction的add(),remove(),replace()动态的添加删除或者替换Fragment
操作fragment
- 一个Activity可以同时组合多个Fragment,一个Fragment可以被多个Activity复用
- Fragment可以调用getActivity获取它所在的Activity,Activity可以调用FragmentManager的findFragmentById或者findFragmentByTag方法获取Fragment对象,在Activity的运行过程中,可以调用FragmentTransaction的add(),remove(),replace()动态的添加删除或者替换Fragment
- Activity中添加Fragment的方式:
- 布局文件中使用<fragment android:name="fragment的实现类名">
- 代码中通过FragmentTransaction对象的add()方法
- Fragment与Activity之间的通信
- 在Activity中创建Bundle包,然后调用Fragment.setArguments方法即可把数据发给Fragment,Fragment中可以调用getArguments方法获取
- Fragment向Activity传送数据,首先在Fragment中定义一个内部接口,让Activity实现该接口,这样Fragment中就可以回调Activity的方法把数据传给Activity
- fragment和activity生命周期最重要的不同之处是它们如何存储在各自的back stack中。
Activity停止时,是存在一个由系统维护的back stack中,但是当fragment停止(被remove)时,需要程序员显示地调用addToBackStack() ,并且fragment是存在一个由宿主activity掌管的back stack中。