android Fragments詳解一:概述
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級支援“返回”鍵(向後導航)。
當向activity中新增一個Fragment時,它須置於ViewGroup控制元件中,並且需定義Fragment自己的介面。你可以在layoutxml檔案中宣告Fragment,元素為:<fragment>;也可以在程式碼中建立Fragment,然後把它加入到ViewGroup控制元件中。然而,Fragment不一定非要放在activity的介面中,它可以隱藏在後臺為actvitiy工作。
本章描述如何使用fragment,包括fragment在加入activity的後退棧中時如何保持自己的狀態,如何與activity以及其它fragment們共享事件,如何顯示在activity的動作欄,等等。
設計哲學
Android從3.0開始引入fragment,主要是為了支援更動態更靈活的介面設計,比如在平板上的應用。平板機上擁有比手機更大的螢幕空間來組合和互動介面元件們。Fragment使你在做那樣的設計時,不需應付view樹中複雜的變化。通過把activity的layout分成fragment,你可以在activity執行時改變它的樣子,並且可以在activity的後退棧中儲存這些改變。
例如:寫一個讀新聞的程式,可以用一個fragment顯示標題列表,另一個fragment顯示選中標題的內容,這兩個fragment都在一個activity上,並排顯示。那麼這兩個fragment都有自己的生命週期並響應自己感興趣的事件。於是,不需再像手機上那樣用一個activity顯示標題列表,用另一個activity顯示新聞內容;現在可以把兩者放在一個activity上同時顯示出來。如下圖:
Fragment必須被寫成可重用的模組。因為fragment有自己的layout,自己進行事件響應,擁有自己的生命週期和行為,所以你可以在多個activity中包含同一個Fragment的不同例項。這對於讓你的介面在不同的螢幕尺寸下都能給使用者完美的體驗尤其重要。比如你可以在程式執行於大螢幕中時啟動包含很多fragment的activity,而在執行於小螢幕時啟動一個包含少量fragment的activity。
舉個例子--還是剛才那個讀新聞的程式-當你檢測到程式執行於大螢幕時,啟動activityA,你將標題列表和新聞內容這兩個fragment都放在activityA中;當檢測到程式執行於小螢幕時,還是啟動activityA,但此時A中只有標題列表fragment,當選中一個標題時,activityA啟動activityB,B中含有新聞內容fragment。
轉自: http://blog.csdn.net/niu_gao/article/details/7163263
相關文章
- android Fragments詳解二:建立FragmentAndroidFragment
- android Fragments詳解四:管理fragmentAndroidFragment
- android Fragments詳解七:fragement示例AndroidFragment
- android Fragments詳解五:與activity通訊AndroidFragment
- android Fragments詳解三:實現Fragment的介面AndroidFragment
- android Fragments詳解六:處理fragement的生命週期AndroidFragment
- Android中使用FragmentManager管理fragmentsAndroidFragment
- Android Service詳解(一)Android
- Android 3.0開始引入fragments(碎片、片段)類AndroidFragment
- WiFi協議技術詳解概述WiFi協議
- 在Android Studio中利用List Fragments建立相簿GalleryAndroidFragment
- Android概述Android
- 詳解Android中的四大元件之一:Activity詳解Android元件
- 轉[Android]APK打包過程詳解(一)AndroidAPK
- Android ViewPager Fragments滑動只重新整理當前頁AndroidViewpagerFragment
- Android AsyncTask 詳解Android
- Android:動畫詳解Android動畫
- Android拖拽詳解Android
- Android:Service詳解Android
- Android Notification 詳解Android
- Android WebView 詳解AndroidWebView
- Android – Drawable 詳解Android
- Android RecyclerView詳解AndroidView
- Android Proguard 詳解Android
- android service詳解Android
- 【Android 動畫】動畫詳解之補間動畫(一)Android動畫
- android程式與執行緒詳解一:程式Android執行緒
- Java緩衝流概述詳解(原理畫圖分析)Java
- SpringMVC 框架系列之元件概述與配置詳解SpringMVC框架元件
- Android SecureRandom漏洞詳解Androidrandom
- Android Service詳解(二)Android
- Android 向量圖詳解Android
- Android元件詳解—TextViewAndroid元件TextView
- Android-Service詳解Android
- Android Gson使用詳解Android
- Android Paint 使用詳解AndroidAI
- Android HttpURLConnection詳解AndroidHTTP
- Android AsyncTask使用詳解Android