1. Fragment的生命周期、基本定义以及使用、Fragment、FragmentManager、FragmentTransaction
2. Fragment的生命周期:11个生命周期函数
onAttach
onOnCreate
onCreateView
onActivityCreated
onStart
onResume
onPause
onStop
onDestoryView
onDestory
onDetach
3. 基本定义的流程
a. 定义一个布局文件,将Fragment所需的视图定义完成
b. 定义Fragment类
定义一个类来继承自Fragment
需要按照具体的需求来复写生命周期函数,其中onCreateView必须复写
在此方法中完成UI的转换成View对象view,并返回该对象
如果需要属于Fragment中的控件或者子视图,也需要在此方法
中去初始化,需要监听也可以一并在此方法中完成
4. Fragment的使用方式
a. 在xml文件中静态引用,不可以在代码中进行移除或者替换操作,使用的标签<fragment />
需要指定android:name="包名.类名"
b. 在代码中动态操作,需要使用到FragmentTransaction的对象,最常用的操作
添加、替换、移除、隐藏、显示、加入back栈
5. FragmentManager的作用
主要是用来管理Fragment的,通过id或者tag寻找Fragment对象
findFragmentById
findFragmentByTag
popBackStack从back栈中弹出Fragment对象等
获取的方式:
a. android.app包下的Fragment:通过Activity的方法getFragmentManager去获取FragmentManager对象
b. android.suport.v4.view包下的Fragment:通过FragmentActivity的getSupportFragmentManager来获取
6. FragmentTransaction的作用
主要用来操作Fragment的,常见操作
添加add、替换replace、移除remove、隐藏hide、显示show、加入back栈addToBackStack
提交事务commit
获取方式:通过FragmentManager的beginTransaction方法来开启事务
注意: 事务的操作必须通过commit方法来提交生效
开启一次事务,该事务的生命周期就开始了;提交了该事务后,事务的生命周期就结束了
所以事务提交以后,下一次要使用需要重新开启一个事务
7. Activity和Fragment之间的传值问题
a. Fragment中提供一个解决方案:
通过参数进行传递
在Activity去设置值:setArgments(Bundle b)
在Fragment中去取值:Bundle b = getArgments();
b. 通过公共的变量:
比如在Application中定义一个全局的变量
在Activity中去进行赋值
在Fragment里引用
c. 在Fragment中取上下文参数的方法getActivity