Fragment是一个主要用来重组UI。支持静态和动态。在Android.app.Fragment包中,一些其他的比较偏的运用就可以自己看android development
1.Fragment的生命周期。参数没有写完整,具体的重载可以使用eclipse中的重载快捷方法。
生成顺序。
1.OnAttach() . 在和Activity关联的时候调用。
2.OnCreate() . 做一些其他的初始化工作。构造。但是数据在构造函数中就有了。这个是只会调用一次的函数。
3.OnCreateView() . 这个是必须要重写的,作用是使用基本的UI布局来填充自己。一般是使用函数inflate(id , container , false) ;
4.OnStart() . 调用了这个说明现在fragment已经是可见的了。 基于Activity
5.OnResume() . 基于Activity
销毁顺序
对于相反就是了。
2.Fragment子类的构建。
对于Fragment,他有一些方法是需要重写的。重要的就是OnCreateView和OnCreate和OnPause。主要是Onpause要实现数据的保留。
3.Fragment的静态创建和UI绑定现实。
这个很多文档都说的不清楚,自己找了半天,现在终于摸索出来了。
首先了解
onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState);
其中的inflater是一个用来查找的查找器。可以使用这个得到需要的UI的id。
container是根节点,就是要引入这个fragment的UI的根节点。就是一个ViewGroup和子类。
最后的是保存的值
那么这个UI到底是啥呢。其实UI就是我们的布局。一个layout就是一个UI。每一个布局都是一个/res/layout/filename.xml
那么就好办了,只要自己生成一个文件,改名xxx.xml,然后可以使用定义布局的方法定义它,最后把fragment和这个UI在onCreateView中绑定就可以可。
绑定的 函数
inflater.inflate(R.layout.my_fragment_ui, container , false) ;///其中的R.layout后面的名字就是你的文件名,这个是系统默认的。
这样,就可以显示这个flagment了。同时fragmeng也要在Activity的布局中出现。
最后说明一下,如果是静态的话,就会在程序开始的时候就初始化,分配资源。并且不可以方便的动态改变在程序中的位置。
4.Fragment的动态实现和绑定。
如果要使用fragment的动态实现,就是在运用的过程中随时改变,需要之下的步骤。
在Activity中定一个ViewGroup也可以是子类layout,作为fragment绑定的位置。之后如果绑定到这个layout的id,那么就会把fragment放到这个layout中,并且重新计算布局。
在需要绑定的地方使用代码:
MyFragment my = new MyFragment() ;
my.setType(MyFragment.FRAG_DETAIL);
android.app.FragmentTransaction ft = getFragmentManager().beginTransaction() ;
ft.add(R.id.detail_fragment, my) ;
ft.commit() ;
注意使用之后,会向layout中放置你的fragment。如果执行多次,就会防止多个。同时注意一点,ft,replace或者是ft.remove都不会回收这个fragment(目前不知道为啥,但是经过代码测试结果是这样的),但是会调用onPause所以最好不要在触发条件中new Fragment。容易造成冗余。
。。。今天很晚了,就这样吧,大连太冷了。