Android之Fragment的優點和作用
一:什麼是Fragment
碎片、片段。其目的是為了解決不同螢幕分辯率的動態和靈活UI設計。大螢幕如平板小螢幕如手機,平板電腦的設計使得其有更多的空間來放更多的UI元件,而多出來的空間存放UI使其會產生更多的互動,從而誕生了fragments。
fragments 在活動Activity中為不同的螢幕尺寸修改佈局配置(小螢幕可能每次顯示一個片段,而大螢幕則可以顯示兩個或更多)。
Fragment必須被寫成可重用的模組。因為fragment有自己的layout,自己進行事件響應,擁有自己的生命週期和行為,所以你可以在多個activity中包含同一個Fragment的不同例項。這對於讓你的介面在不同的螢幕尺寸下都能給使用者完美的體驗尤其重要。
二、Fragment優點
1.Fragment可以使你能夠將activity分離成多個可重用的元件,每個都有它自己的生命週期和UI。
2.Fragment可以輕鬆得建立動態靈活的UI設計,可以適應於不同的螢幕尺寸。從手機到平板電腦。
3.Fragment是一個獨立的模組,緊緊地與activity繫結在一起。可以執行中動態地移除、加入、交換等。
4.Fragment提供一個新的方式讓你在不同的安卓裝置上統一你的UI。
5.Fragment 切換流暢,輕量切換。
6.Fragment 替代TabActivity做導航,效能更好。
7.Fragment 在4.2.版本中新增巢狀fragment使用方法,能夠生成更好的介面效果。
Fragment做區域性內容更新更方便,原來為了到達這一點要把多個佈局放到一個activity裡面,現在可以用多Fragment來代替,只有在需要的時候才載入Fragment,提高效能。
可以從startActivityForResult中接收到返回結果,但是View不能。
Fragment的生命週期
你可以把fragment看作是activity的模組化元件,它擁有自己的生命週期
Fragment是activity的介面中的一部分或一種行為。你可以把多個Fragment們組合到一個activity中來建立一個多面介面並且你可以在多個activity中重用一個Fragment。你可以把Fragment認為模組化的一段activity,它具有自己的生命週期,接收它自己的事件,並可以在activity執行時被新增或刪除。
Fragment不能獨立存在,它必須嵌入到activity中,而且Fragment的生命週期直接受所在的activity的影響。例如:當activity暫停時,它擁有的所有的Fragment們都暫停了,當activity銷燬時,它擁有的所有Fragment們都被銷燬。然而,當activity執行時(在onResume()之後,onPause()之前),你可以單獨地操作每個Fragment,比如新增或刪除它們。當你在執行上述針對Fragment的事務時,你可以將事務新增到一個棧中,這個棧被activity管理,棧中的每一條都是一個Fragment的一次事務。有了這個棧,就可以反向執行Fragment的事務,這樣就可以在Fragment級支援“返回”鍵(向後導航)。
顯示Fragment時(跟使用者互動)要呼叫的核心的生命週期方法如下:
1. 把Fragment物件跟Activity關聯時,呼叫onAttach(Activity)方法;
2. Fragment物件的初始建立時,呼叫onCreate(Bundle)方法;
3. onCreateView(LayoutInflater, ViewGroup, Bundle)方法用於建立和返回跟Fragment關聯的View物件;
4. onActivityCreate(Bundle)方法會告訴Fragment物件,它所依附的Activity物件已經完成了Activity.onCreate()方法的執行;
5. onStart()方法會讓Fragment物件顯示給使用者(在包含該Fragment物件的Activity被啟動後);
6. onResume()會讓Fragment物件跟使用者互動(在包含該Fragment物件的Activity被啟恢復後)。