Fragments可以使你能夠將activity分離成多個可重用的組件,每個都有它自己的生命週期和UI。
Fragments的主要優點:你可以輕鬆得創建動態靈活的UI設計,可以適應於不同的屏幕尺寸。從手機到平板電腦。
每個Fragment都是一個獨立的模塊,緊緊地與activity綁定在一起。可以運行中動態地移除、加入、交換等。
Fragments提供一個新的方式讓你在不同的安卓設備上統一你的UI。
1. onAttach()
Fragment 附加在父窗口Activity上。
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
// 這個方法你可以獲取到父Activity的引用。
}
做一些Fragment初始化操作
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 初始化Fragment
}
給Fragment創建自己的UI
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container,
Bundle savedInstanceState) {
// 創建或者解析加載一個視圖,然後返回作爲Fragment的UI
// 如果這個Fragment沒有UI,那麼返回NULL
return inflater.inflate(R.layout.my_fragment, container, false);
}
當父Activity和當前的Fragment UI都完整創建完成時被調用
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
// 完成Fragment的初始化,不對前面不是已經初始化好了麼?
//這個方法主要是初始化那些你需要你的父Activity或者Fragment的UI已經被完整初始化才能初始化的元素。
//具體你看圖中的位置你能看出點端倪來。比如UI的元素沒被解析反射進來,你還想用? 想得美,等它初始化完,你再用。
}
6. onSaveInstance
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
//這個Bundle會被傳入到onCreate、onCreateView
super.onSaveInstanceState(savedInstanceState);
}
7. onDestroyView
當Fragment的UI被分離的時候
@Override
public void onDestroyView() {
//清除所有跟視圖相關的資源
super.onDestroyView();
}
8. OnDestroy
生命週期尾
@Override
public void onDestroy(){
//清除所有資源包括要結束的線程,關閉數據庫連接等等。
super.onDestroy();
}
9. OnDetach
當Fragment從父activity身上分離
@Override
public void onDetach() {
super.onDetach();
}