A.静态加载:
1.创建Activity类
2.在定义Activity类的布局文件xml中,声明标签,指定name属性指向一个Fragment类名(包.全名)
注:标签通过静态加载时必须给定ID或tag标志
3.创建Fragment类布局文件
4.创建Fragment类,覆写oncreatview方法,使用传入对象inflater将layout文件转化为view对象
View view= inflater.inflater(R.layout.fragmentlayout, container, false)
return view;
参数说明:
resource: Fragment需要加载的布局文件
root:加载view的父类ViewGroup
attactToRoot:true,false,是否返回viewgroup原有布局
控件使用:
Textview tv = view.findViewById();//使用view.find...
能否在Activity中找到TextView?
静态加载下是可以直接使用findViewById…..
B,动态加载:
1.FragmentManger fm =getFragmentManger();//获取fm管理对象
2.FragmentTransaction ft = fm.beeginTransaction();//获取事务对象
3.开启事务,使用ft.add(xx,yy),replace,remove
等方法处理布局显示
参数:(Activity布局里需要改变的控件ID,当前fragment对象fm)
4.类数据库操作,记得ft.commit()
5.如果在ft.commit()
提交前,设置back返回到前一个界面功能,需添加ft.addToBackStack()
方法
Frament与Activity通信:
1.Fragment获取所在Activity时调用getActivity()
传递数据:需要在Fragment中定义回调接口,在让该Activity实现该回调接口
2.Activity获取Fragment时调用findFragmentById()或ByTag()
传递数据:创建Bundle(),调用Fragment的setArguments(Bundle bundle)方法
生命周期:
onAttach: 当fragment 被添加到Activity时,只调用一次
onCreate: 当Fragment创建时,只调用一次
onCreatView: 当绘制布局时调用
onStart: 启动Fragment
onResume: Fragment启动后调用,即onstart周期后一定会调用
onPause: 暂停
onStop: 停止
onDestoryView: 销毁Fragment所包含的组件时调用
onDestory: 销毁Fagment时回调
onDetach(): 当Fragment从Activity中删除时调用,只调用一次