標籤:
Fragment在Android 3.0( API 11)引入,是為了支援在大屏上顯示更加動態、靈活的UI,比如在平板和電視上。Fragment可以看作是嵌套的Activity,類似ActivityGroup,但是開銷肯定沒有ActivityGroup那麼大,每一個Fragment管理著一個View,Fragment彼此之間相互獨立,有自己的生命週期,這個生命週期是在Activity生命週期中的。Fragment可以用來解決螢幕適配和動態建立View的問題。
一個Fragment總是嵌入到一個Activity,是一個模組化的View,它的生命週期受它所嵌入的Activity生命週期的的影響。比如Activity進入paused狀態,那麼多有附在這個Activity的Fragment都會進入paused狀態,當Activity被銷毀時,所有附在這個Activity的Fragment也都會銷毀。然後當Activty進入運行狀態onResume後,你可以獨立的管理每一個Fragment,可以add一個Fragment,也可以remove一個Fragment。在你執行一個Fragment事務的時候(建立並且顯示出來),你可以把這個Fragment放到Fragment回退棧中,這個回退棧記錄了所有你執行過的Fragment事務,使用者在點擊返回鍵的時候可以從Fragment棧中取一個Fragment來顯示。
Fragment的生命週期:
如果你很清楚Activity的生命週期那麼Fragment的生命週期就很容易理解,在Fragment中有很多類似Activity生命週期函數的回調方法,這些方法由Android系統調用。官方的Fragment生命週期圖如下:
- onCreat():
系統調用這個函數來建立Fragment,這個方法中用來建立整個Fragment周期中都會用到的資源,比如在paused、stoped,或者resumed方法中用到的資源。
- onCreateView():
當Fragment需要第一次繪製使用者介面的時候系統調用這個函數完成UI的繪製,你必須在這個函數返回一個View,這個View是Fragment的根View,如果你不想Fragment顯示View就返回null。
- onPause():
當離開Fragment時系統會首先調用這個函數,在這個函數中你需要儲存使用者的狀態類似在Activity的onPause方法中做的工作。
一般來說應用程式至少需要重寫這三個函數,來完成你的應用程式邏輯。
本文為原創,禁止轉載!
大家如果對編程感興趣,想瞭解更多的編程知識,解決編程問題,想要系統學習某一種開發知識,我們這裡有java高手,C++/C高 手,windows/Linux高手,android/ios高手,請大家關注我的公眾號:程式員互動聯盟or coder_online,大牛線上為您提供服務。
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
【Android基礎】Fragment 詳解之Fragment介紹