其他面試題推薦:衝刺2021 Android面試之Activity
衝刺2021專欄會一直更新,歡迎收藏
文章目錄
基礎篇
Fragment爲什麼被稱爲第五大組件?
Fragment和四大組件一樣有自己的聲明週期。他可以動態加載到Activity中去,必須依附Activity。使用頻率極高。
Fragment的加載方式有哪些?
① 靜態加載
即靜態的將Fragment添加在XML佈局文件中,這種方式在平時開發中使用頻率較低。
② 動態加載
即在代碼中動態添加Fragment
步驟如下:
1、獲取FragmentManager
2、通過FragmentManager獲取FragmentTransaction
3、通過FragmentTransaction向指定佈局區域添加或者替換Fragment
4、提交修改即可
FragmentPagerAdapter與FragmentStatePagerAdapter的區別?
FragmentPagerAdapter適用於頁面較少的情況,反之,FragmentStatePagerAdapter適用於頁面較多的情況。
在FragmentStatePagerAdapter中調用destroyItem方法時Adapter remove了指定的Fragment,這個方法回收了Fragment;在FragmentPagerAdapter中調用用destroyItem方法時Adapter detach了指定的Fragment,這個方法斷開了Fragment而沒有回收,因此FragmentStatePagerAdapter比FragmentPagerAdapter更加節省內存。但是FragmentPagerAdapter可以保存Fragment的內存狀態,切換時更加流暢。
Fragment的生命週期?
注意:在Fragment和Activity一起啓動時,啓動前Activity的方法在Fragment方法之前執行。銷燬時,Activity方法在Fragment方法之後執行,例如Activity onStart()方法執行完之後纔會執行Fragment onStart()的方法,反之,銷燬時,Fragment onPause()執行後纔會執行Activity onPause()方法。
Fragment與Activity或者Fragment之間如何通信?
1、Fragment中調用Activity方法通過:getActivity()方法獲取Activity之後操作。
2、Activity中調用Fragment中的方法:接口回調
3、Fragment中調用Fragment中的方法:findFragmentById
FragmentTransaction的replace、add。remove方法有什麼不同?
add:添加Fragment到Fragment隊列中。
remove:刪除Fragment從Fragment隊列中。
replace:替換Fragment。
進階篇
待更新