標籤:
一、關於Fragmemt
1、安卓系統3.0介紹了Fragment,主要是為了支援更多的動態和靈活的使用者介面設計,如平板電腦。Fragment允許組合和交換使用者介面組件,而不需要更改視圖階層。通過擺個Activity的布局劃分成Fragment,可以再運行時修改Activity的外觀,並保留在Activity堆棧中的更改。
2、Fragment表示Activity中的使用者介面的行為或部分。可以將多個Fragment組合在一個Activity中,以構建多窗格使用者介面,並在多個活動中重用Fragment。可以把Fragment當作一個Activity的模組部分,它有自己的生命週期,接受自己的輸入事件,你可以在Activity正在運行時添加或刪除。
3、一個Fragment必須始終嵌在一個Activity中,該片段的生命週期直接受宿主Activity的生命週期的影響。例如,當Activity暫停時,所有的Fragment都是這樣,當Activity被破壞時,所有的Fragment都被破壞。然而,當一個Activity正在運行,可以獨立操作每一個Fragment,如添加刪除它們。
二、Fragment生命週期圖解
1. 當一個fragment被建立的時候,它會經曆以下狀態.
- onAttach()
- onCreate()
- onCreateView()
- onActivityCreated()
2. 當這個fragment對使用者可見的時候,它會經曆以下狀態。
3. 當這個fragment進入“後台模式”的時候,它會經曆以下狀態。
4. 當這個fragment被銷毀了(或者持有它的activity被銷毀了),它會經曆以下狀態。
- onPause()
- onStop()
- onDestroyView()
- onDestroy()
- onDetach()
三、建立Fragment
要建立一個Fragment,你必須建立一個Fragment的子類(或它的一個現有的子類)。
Fragment類的代碼看起來很像一個Activity。它含有類似於Activity的回調方法,如oncreate(),onstart(),onpause(),和onstop()。
事實上,如果你將一個現有的安卓應用程式轉換為使用Fragment,你可能會將代碼從Activity的回調方法轉移到你的Fragment的相應的回調方法中。
通常,你應該至少實現以下生命週期方法:
oncreate()
當建立該Fragment時,該系統調用該。在你的實現中,你應該對你想要保留的Fragment進行初始化,然後在暫停或停止的時候,然後重新開始。
oncreateview()
該系統調用這個時候,以繪製其使用者介面的第一次。要為你的Fragment繪製一個使用者介面,你必須從這個方法中返回一個視圖,這是你的Fragment布局的根。如果Fragment不提供使用者介面,您可以返回null。
onpause()
該系統將該方法稱為使用者離開該Fragment(雖然並不總是意味著該Fragment被銷毀);通常您應該提交目前使用者所做的任何更改(因為使用者可能不會回來)。
執行個體代碼如下:
public class PhoneFragment extends Fragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_phone, container, false); return view; } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); } @Override public void onDestroy() { super.onDestroy(); }}
Android :fragment生命週期