Fragment功能详解

(1)Fragment可以作为Activity界面的一部分组成出现

(2)可以再一个Activity中同时出现多个Fragment,并且一个Fragment也可以再多个Activity中使用

(3)在Activity运行过程中,可以添加,移除或替换Fragment

(4)Fragment可以响应自己的输入事件,并且有自己的生命周期,他们的生命周期会受宿主Activity的生命周期影响

 

onCreateView()方法

Fragment第一次绘制它的用户界面的时候,系统会调用此方法,为了绘制Fragment的UI,此方法必须返回一个View,如果不显示UI,返回null即可。


Fragment加载方法

(1)静态加载

在Activity的layout文件中声明Fragment,需要特别注意的是<fragment>中的android:name属性制定了在layout中实例化的Fragment类


标识Fragment的方法

android:id属性提供一个唯一ID

android:tag属性提供一个唯一字符串

(2)动态加载

撰写代码将Fragment添加到一个Activity layout中 add():添加一个Fragment(指定要添加的fragment和插入的View) 与此类似的还有remove(),替换()


处理Fragment事务

根据用户的交互情况,对Fragment进行添加,移除,替换,以及执行其他动作,提交给Activity的每一套变化被称作一个事务。

FragmentManager fragmentManager = getFragmentManager();

FragmentTransaction beginTransaction = fragmentManager.beginTransaction();

每一个事务都是同事执行一套变化,可以在一个事务中设置你所有想执行的变化,包括add(),remove(), replace(),然后提交给Activity,必须调用commit()方法


如果允许用户通过按下BACK按键返回到前一个Fragment状态,调用commit()之前可以加入addToBackStack()方法


Fragment与Activity通信

   > Fragmen的生命周期

         关键方法:

                    onAttach()

                    onCreateView()

     全部方法:

      (1)启动Fragment

                      onAttach()    ====>onCreate()  ====>  onCreateView()   ===> onActivityCreated()   ===>   onStart()  ===>onResume()

      (2) 屏幕锁屏

             onPause()   ====>  onStop()

      (3) 屏幕解锁

              onStart()  ====>  onResume()


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章