基本概念
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
中实现这个回调。