歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android UI開發詳解之Fragment

Android UI開發詳解之Fragment

日期:2017/3/1 10:00:10   编辑:Linux編程

Fragment是Android自從3.0之後新加入的一個組件,我相信很多人都已經聽說過這個組件了,但這個組件到底是個什麼,如何去使用他呢,且聽我講來。

以下部分資料來自官網(官網才是王道,其他都是浮雲)

一、Fragment要點

Fragment作為Activity界面的一部分組成出現

可以在一個Activity中同時出現多個Fragment,並且,一個Fragment亦可在多個Activity中使用。

在Activity運行過程中,可以添加、移除或者替換Fragment(add()、remove()、replace())

Fragment可以響應自己的輸入事件,並且有自己的生命周期,當然,它們的生命周期直接被其所屬的宿主activity的生命周期影響。

設計哲學

Android在3.0中引入了fragments的概念,主要目的是用在大屏幕設備上--例如平板電腦上,支持更加動態和靈活的UI設計。平板電腦的屏幕要比手機的大得多,有更多的空間來放更多的UI組件,並且這些組件之間會產生更多的交互。Fragment允許這樣的一種設計,而不需要你親自來管理 viewhierarchy的復雜變化。 通過將activity的布局分散到fragment中, 你可以在運行時修改activity的外觀,並在由activity管理的back stack中保存那些變化.(http://developer.android.com/guide/topics/fundamentals/fragments.html)

例如, 一個新聞應用可以在屏幕左側使用一個fragment來展示一個文章的列表,然後在屏幕右側使用另一個fragment來展示一篇文章--2個fragment並排顯示在相同的一個activity中,並且每一個fragment擁有它自己的一套生命周期回調方法,並且處理它們自己的用戶輸入事件。 因此, 取代使用一個activity來選擇一篇文章而另一個activity來閱讀文章的方式,用戶可以在同一個activity中選擇一篇文章並且閱讀, 如圖所示:

fragment在你的應用中應當是一個模塊化和可重用的組件.即,因為fragment定義了它自己的布局, 以及通過使用它自己的生命周期回調方法定義了它自己的行為,你可以將fragment包含到多個activity中. 這點特別重要, 因為這允許你將你的用戶體驗適配到不同的屏幕尺寸.舉個例子,你可能會僅當在屏幕尺寸足夠大時,在一個activity中包含多個fragment,並且,當不屬於這種情況時,會啟動另一個單獨的,使用不同fragment的activity.

繼續之前那個新聞的例子 -- 當運行在一個特別大的屏幕時(例如平板電腦),應用可以在Activity A中嵌入2個fragment。然而,在一個正常尺寸的屏幕(例如手機)上,沒有足夠的空間同時供2個fragment用, 因此, Activity A會僅包含文章列表的fragment, 而當用戶選擇一篇文章時, 它會啟動ActivityB,它包含閱讀文章的fragment.因此, 應用可以同時支持上圖中的2種設計模式。

這時,大家應該知道Fragment到底是個什麼東西了。

Copyright © Linux教程網 All Rights Reserved