為何要用Fragment

Fragment是Android 3.0 (Honeycomb)被引入的。主要目的是為了給大屏幕(如平板電腦)上更加動態(tài)和靈活的UI設計提供支持。由于平板電腦的屏幕比手機的屏幕大很多,因此可用于組合和交換的UI組件的空間更大,利用Fragment實現(xiàn)此類設計的時,就無需管理對視圖層次結構的復雜更改。

通過將 Activity 布局分成片段,您可以在運行時修改 Activity 的外觀,并在由 Activity 管理的返回棧中保留這些更改。如果僅僅只有Activity布局,那是不夠的,不僅在手機上有一套布局,同時在平板上還需要設計一套布局,那樣維護起來也麻煩,代碼上也有一定的冗余,對于APP包的大小也有一定的壓力。Fragment的優(yōu)勢是布局在不同設備上的適配。

比如:

從圖中我們可以看到,在平板中,一個Activity A包含了兩個Fragment,分別是Fragment A和Fragment B,但在手機中呢,就需要兩個Activity,分別是Activity A包含F(xiàn)ragment A和Activity B包含F(xiàn)ragment B。同時每個Fragment都具有自己的一套生命周期回調方法,并各自處理自己的用戶輸入事件。 因此,在平板中使用一個Activity 就可以了,左側是列表,右邊是內(nèi)容詳情。

除此之外,使用Fragment還有這么幾個方面優(yōu)勢:

代碼復用。特別適用于模塊化的開發(fā),因為一個Fragment可以被多個Activity嵌套,有個共同的業(yè)務模塊就可以復用了,是模塊化UI的良好組件。

Activity用來管理Fragment。Fragment的生命周期是寄托到Activity中,F(xiàn)ragment可以被Attach添加和Detach釋放。

可控性。Fragment可以像普通對象那樣自由的創(chuàng)建和控制,傳遞參數(shù)更加容易和方便,也不用處理系統(tǒng)相關的事情,顯示方式、替換、不管是整體還是部分,都可以做到相應的更改。

Fragments是view controllers,它們包含可測試的,解耦的業(yè)務邏輯塊,由于Fragments是構建在views之上的,而views很容易實現(xiàn)動畫效果,因此Fragments在屏幕切換時具有更好的控制。

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容