1、Fragment爲什麼被稱爲第五大組件?
1、Fragment爲什麼被稱爲第五大組件
Fragment跟其餘的4個組件一樣,具有自己的生命週期。在android3.0的引入,起初是爲了給大
屏幕設備更靈活展現UI
所用到的。之後呢大家更偏向於Fragment的UI開發是由於Fragment比Activity更加節省內存,同時
UI的切換效果更加舒適。
2、Fragment加載到Activity的兩種方式
靜態加載:就是在佈局中寫入。
動態加載:
主要是通過FragmentManager獲取FragmentTransaction對象來管理Fragment的
3、FragmentPagerAdapter與FragmentStatePagerAdapter的區別
主要的區別是FragmentPagerAdapter適用於Fragment較少的時候,FragmentStatePagerAdapter適
用於頁面比較多的時候。
在FragmentStatePagerAdapter的destroyItem()方法中的remove()可以看到是真正的釋放了Fragment內存,
所以所大量Fragment的情況下FragmentStateAdapter比FragmentPagerAdapter更加節省內存。
在FragmentPagerAdapter中的destroyItem()方法中的detach()方法是隻是把FragmentUI跟ActivityUI脫離,
並沒有真正的去釋放Fragment的內存。
2、Fragment的生命週期?
Activity與Fragment結合的生命週期圖
onAttach:是Fragment與Activity建立關聯有所回調的。
onCreate:在初次創建Fragment的時候調用的。
onCreateView:是系統在Fragment獲取用戶界面的時候調用的,繪製UI
onCreated:Fragment表明Fragment UI界面完全繪製好了。
onActivityCreated:是在Activity被繪製渲染成功後調用的方法。
onResume:Fragment可以跟用戶進行交互了。初始化完全完成。
onPause:Fragment不能跟用戶進行交互了。
onDestoryView: 跟Fragment的onCreateView相對應,會被保存
onDeach:Fragment不再被使用
3、Fragment之間的通信
1、在Fragment中調用Activity中的方法getActivity
2、在Activity中調用Fragment的方法接口回調
3、在Fragment中調用Fragment中的方法findFragmentByid
4、Fragment的replace、add、remove方法
replace:是FragmentManager的方法、是替換Fragment實例而不是將Fragment實例加到最上層
add:將Fragment實例添加到activity的最上層
remove:將Fragment實例從activity的Fragment隊列中刪除