Fragment
一,Fragment知识概要
1,Fragment可以作为Activity界面的一部分组成出现;
2,可以在一个Activity中同时出现多个Fragment,并且
一个Fragment也可以在多个Activity中使用;
3,在Activity运行过程中,可以添加、移除或替换Fragment
4,Fragment可以响应自己的输入事件,并且有自己的生命周期,他们的生命周期
会受宿主Activity的生命周期影响
二,onCreateView()方法
Fragment第一次绘制Fragment的用户界面的时候,系统会调用这个方法,为了绘制
Fragmeng的UI,此方法必须返回一个View,如果不显示飞UI,返回null即可;
三,Fragment的加载方式
静态加载
动态加载
四,静态加载
在Activity的layout文件中声明Fragment,
<fragment>中的android:name的属性指定了飞在layout中实例化的Fragment类
标示Fragment的方法:
android:id 提供一个唯一的id
android:tag 提供一个唯一的字符串
五、动态加载
add() 添加一个Fragment到View中
remove()
replace()
处理Fragment事务
根据用户的交互情况,对Fragment进行添加、移除、替换,以及执行其他动作,提交给Activity的每一套变化被称为一个事务
FragmentManager fragmentManager =getFragmentManager();
FragmentTransaction beginTransation =fragmentManager.beginTransaction();
每一个事务都是同时执行一套变化,可以在一个事务中设置你所有想执行的变化,包括add(), remove(),replace(), 然后提交给
Activity,必须调用 commit()方法;
如果允许用户通过按下BACK按键返回到前一个Fragment状态,
调用commit()之前可以加入addToBackStack()方法
六, Fragment的生命周期
Activity State Fragment Callbacks
created() onAttach()
//当Fragment被添加到Activity的时候会调用一次,并且只调用一次
onCreate()
//创建Fragment的时候,会调用一次,并且只调用一次
onCreateView()
//每次创建Fragment中的View组件的时候,都会被回调一次
onActivityCreated()
//当Fragment所走的Activity启动完成的时候,会被调用一次
Started onStart()
//启动 Fragment
Resumed onResume()
//恢复Fragment时候会被回调,调用onStart()方法后面一定会调用他
Paused onPause()
//暂停 Fragment
Stopped onStop()
//停止Fragment
Destroyed onDestroyView()
//销毁Fragment中的View组件的时候,会被调用一次
onDestroy()
//销毁Fragment时会被调用
onDetach()
// 从Activity中删除Fragment的时候,会回调该方法,并且这个方法
只会回调一次
七,Fragment与Activity通信
a, Fragment可调用getActivity()方法获取它所在的 Activity()
b, Activity可调用FragmentManager的findFragmentById()或
findFragmentByTag()方法获取Fragment
七(一),从Activity向Fragment传递参数
在Activity中创建Bundle数据包,并调用Fragment的
setArguments(Bundle bundle)方法
八(二),从Fragment向Activity传递参数
需要在Fragment中定义一个内部接口, 再让包含该Fragment的Activity实现该回调接口。这样Fragment可调用该回调方法将数据传递给Activity