Android Fragments 詳細使用

Fragments 誕生初衷

自從Android 3.0中引入fragments 的概念,根據詞海的翻譯能夠譯爲:碎片、片斷。其上的是爲了解決不一樣屏幕分辯率的動態和靈活UI設計。大屏幕如平板小屏幕如手機,平板電腦的設計使得其有更多的空間來放更多的UI組件,而多出來的空間存放UI使其會產生更多的交互,從而誕生了fragments 。fragments 的設計不須要你來親自管理view hierarchy 的複雜變化,經過將Activity 的佈局分散到frament 中,能夠在運行時修改activity 的外觀,而且由activity 管理的back stack 中保存些變化。web

Fragments 設計理念

在設計應用時特別是Android 應用 ,有衆多的分辨率要去適應,而fragments 可讓你在屏幕不一樣的屏幕上動態管理UI。例如:通信應用程序(QQ),用戶列表能夠在左邊,消息窗口在右邊的設計。而在手機屏幕用戶列表填充屏幕當點擊某一用戶時,則彈出對話窗口的設計,以下圖:佈局


Fragments的生命週期

每個fragments 都有本身的一套生命週期回調方法和處理本身的用戶輸入事件。 對應生命週期可參考下圖:spa



其中大多數程序必須使用Fragments 必須實現的三個回調方法分別爲:翻譯

onCreate設計

系統建立Fragments 時調用,可作執行初始化工做或者當程序被暫停或中止時用來恢復狀態,跟Activity 中的onCreate至關。orm

onCreateView生命週期

用於首次繪製用戶界面的回調方法,必須返回要建立的Fragments 視圖UI。假如你不但願提供Fragments 用戶界面則能夠返回NULL。事件

onPauseit

當用戶離開這個Fragments 的時候調用,這時你要提交任何應該持久的變化,由於用戶可能不會回來。更多的事件能夠參考上圖的生命週期關係圖。List

Fragments 的類別

系統內置了三種Fragments ,這三種Fragments 分別有不一樣的應用場景分別爲:

DialogFragment

對話框式的Fragments,能夠將一個fragments 對話框併到activity 管理的fragments back stack 中,容許用戶回到一個前曾摒棄fragments.

ListFragments

相似於ListActivity 的效果,而且還提供了ListActivity 相似的onListItemCLick和setListAdapter等功能。

PreferenceFragments

相似於PreferenceActivity .能夠建立相似IPAD的設置界面。

相關文章
相關標籤/搜索