Fragment
概念:
Fragment是在Android 3.0 (API level 11)開始引入新的API技術。
爲了提高代碼重用性和改善用戶體驗,我們將Activity中的UI組件進行分組和模塊化管理。這些分組後的UI組件就是Fragment。
一個Activity頁面中可以包含多個Fragment模塊,而同一個Fragment模塊也可以被多個Activity使用。每個Fragment有自己的佈局,有自己的生命週期。雖然Fragment擁有自己的生命週期,但因爲Fragment必須被嵌入到Activity中使用,因此Fragment的生命週期是受其Activity宿主的生命週期所控制的。當Activity暫停時,該Activtiy內的所有Fragment都會暫停;當Activity被銷燬時,該Activity內的所有Fragment都會被銷燬。
局部內容切換,UI模塊的佈局和代碼重用,有生命週期
fragment的定義:
自定義類繼承於Fragment, android.support.v4.app.Fragment
生命週期方法:
1、onAttach(): 當該Fragment被添加到Activity時被回調。該方法只會被調用一次;
2、onCreate(): 當創建Fragment時被回調。該方法只會被調用一次;
3、onCreateView():每次創建、繪製該Fragment的View組件時回調該方法,Fragment將會顯示該方法返回的View 組件;
4、onActivityCreated(): 當Fragment的宿主Activity被啓動完成後回調該方法;
5、onStart(): 啓動Fragment時被回調;
6、onResume(): onStart()方法後一定會回調onResume()方法;
7、onPause(): 暫停Fragment時被回調;
8、onStop(): 停止Fragment時被回調;
9、onDestroyView(): 銷燬該Fragment所包含的View組件時調用;
10、onDestroy(): 銷燬Fragment時被回調。該方法只會被調用一次;
11、onDetach(): 將Fragment從Activity中刪除、替換完成時調用該方法。onDestroy()方法後一定會回調onDetach()方法。
該方法只會被調用一次。
Activity中有一個Fragment,Fragment裏有一個View.
FragmentManager,Fragment管理者
Fragment的使用1靜態2動態
一 靜態
在activity中添加標籤
可以通過fragmentManager.findFragmentById()獲取到靜態fragment對象
【備註:】
標籤的android:id 和 android:tag屬性必須至少有一個,同一個xml文件中id或tag必須唯一;
標籤的class 和 android:name屬性功能完全相同,使用其中任何一個即可。
二 動態
相互傳值
不管動態加載或者靜態加載,fragment向activity傳值都可以使用接口回調的方式
activity向fragment:官方推薦動態加載的時候使用setArguments(Bundle),傳值
Arguments(Bundle)取值。
靜態加載 不能使用setArguments
add() remove() replace() hide() show()
返回上一個fragment popbackstack 返回鍵監聽
newInstance()