Fragment部分复习总结
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