(1) fragment为什么被称为第五大组件
因为fragment比activity更节省内存,其切换模式也更加舒适,使用频率不低于四大组件,且有自己的生命周期,而且必须依赖于activity
(2)、Activity创建Fragment的方式
静态创建
动态创建
(3)、FragmentPageAdapter和FragmentPageStateAdapter的区别
FragmentPageAdapter在每次切换页面的的时候,是将Fragment进行分离,适合页面较少的Fragment使用以保存一些内存,对系统内存不会多大影响
FragmentPageStateAdapter在每次切换页面的时候,是将Fragment进行回收,适合页面较多的Fragment使用,这样就不会消耗更多的内存
(4)、Fragment生命周期
onAttach()
onCreate()
onCreateView()
onActivityCreated()
onStart()
onResume()
onPause()
onStop()
onDestroyView()
onDestroy()
onDetach()
(5)、Fragment的通信
Fragment调用Activity中的方法:getActivity
步骤:调用fragment的getActicity()方法即可返回它所在的activity实例,之后就可调用activity中的方法或成员变量
使用接口回调的机制,也就是在fragment中定义一个内部回调接口,再让包含该fragment的activity类实现这个接口,这样fragment就能够调用这个回调方法,将数据传给Activity中
Activity调用Fragment中的方法:接口回调
步骤:先创建fragment对象:创建bundle;putstring;调用setArgument()方法
Fragment调用Fragment中的方法:FragmentManager.findFragmentById
步骤:通过fragemntManager找到对应id或者tag的fragment,然后获取里面的数据或方法
通过他们所在的activity作为桥梁,可以使用getActivity()或者接口回调,达到另一个fragment数据的目的
(6)、Fragment的replace、add、remove方法
replace:替代Fragment的栈顶页面
add:添加Fragment到栈顶页面
remove:移除Fragment栈顶页面