Fragment的基础知识

来源:互联网 发布:读书看报软件 编辑:程序博客网 时间:2024/05/01 07:04

1、fragment中的oncreatview相当于activity中的oncreat,即在启动的时候创建视图,不同的是,在fragment中,如果想创建一个可视的视图,则返回视图view,如果让fragment在activity中只进行后台操作,则返回值为null,不创建视图。
2、fragment常用的四种方法,resume、paused、start、stopped。resume与paused是一个组合,一个是暂停时调用,一个是开始是调用,start与stopped也是一样。两组之间的差别,在于resume暂停的时候,整个fragment知识暂停了,而stopped则是让整个fragment停止,当再次开始的时候,paused会恢复fragment回到暂停前的状态,而start则是让fragment初始化。即一个是可以保存数据的,另一个则不能。
3、在界面布局文件中使用元素添加Fragment时,可以为元素指定android:id或者android:tag属性,然后Activity则可以通过findFragmentByid或者findFragmentByTag来获取该fragment。
4、Activity里面嵌套了fragment,而fragment里面有个framelayout容器也嵌套了fragment,那么一级fragment管理二级fragment的方法不再是用getFragmentManager();而是要用getChirldFragmentManager();
5、 Fragment的切换,一个fragment切换到另一个fragment有多种方式,第一种,就是,当前的fragment先hide,然后add新的fragment再show出来;第二种,新fragment直接replace掉当前的fragment。两者的区别在于,hide和show的是不会销毁fragment的,只是将fragment隐藏,放到栈中,当你按回退键的时候,仍然会返回到上一个fragment。而replace的话,则是直接替换到fragment,按回退键的时候就直接退出activity了,不会再返回栈中。不管是哪种方式,对fragment操作之后都需要commit。
6、在activity中,对fragment进行操作,可以在fragment中写一个回调函数,然后在activity中调用这个回调函数则可对Fragment进行操作。又或者,可以在activity中,直接获取到fragment中的控件,然后对控件进行操作。
两者之间的差别在于。一个是被动调用,一个是主动调用。回调函数属于被动调用,对于传参数、线程或者耗时的操作,则只能用回调函数来执行对fragment的操作,而对于一些比较简单操作,或者对固定控件的操作的,就可以直接获取到控件,然后进行操作。
7、在Fragment中获取到Fragment的事务管理器的方法:

FragmentTransaction transaction = getFragmentManager().beginTransaction();

在activity中,获取到Fragment的事务管理器的方法:

FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();

其中,Activity必须继承于FragmentActivity。

注:

onAttach()Called when the fragment has been associated with the activity (the  Activity  is passed in here).onCreateView()Called to create the view hierarchy associated with the fragment.onActivityCreated()Called when the activity's  onCreated()  method has returned.onDestroyView()Called when the view hierarchy associated with the fragment is being removed.onDetach()Called when the fragment is being disassociated from the activity.
0 0
原创粉丝点击