基本概念
Fragment 是 Activity 的模块化组成部分,它具有自己的生命周期,能接收自己的输入事件,可以在 Activity 运行时添加或移除。 它存在于 Activity 视图层次结构的某个 ViewGroup 内部,并且会定义其自己的视图布局。
一个 Fragment 可以被加入多个 Activity ;一个 Activity 可以加入多个 Fragment。

生命周期
Fragment 生命周期,如下图所示:

每个 Fragment 至少需要实现这三个生命周期回调:onCreate() --> onCreateView() --> onPause()
Fragment 和 Activity 的生命周期对比:
生命周期函数中,只有 onCreate 和 onResume 是 Activity比 Fragment 先执行,其他都是后执行,示例如下:
1 | // Activity启动 |
向Activity添加Fragment
静态添加
在 Activity 的布局文件内定义 Fragment,至少需要指定如下属性:
- android:name
- android:id
- tools:layout
示例如下:
1 | <fragment |
动态添加
代码中将 Fragment 添加到某个现有 ViewGroup,都是事务性操作,必须 commit 后才能生效。
1 | FragmentManager fragmentManager = getSupportFragmentManager(); |
Activity 和 Fragment 之间的通信
Activity调用Fragment中的方法
通过拿到FragmentManager来查找对应的Fragment, 如下:1
2ExampleFragment fragment = (ExampleFragment) getFragmentManager()
.findFragmentById(R.id.example_fragment);Fragment调用Activity中的方法Fragment定义一个接口,在Activity中实现这个回调。