衝刺2021 Android面試之Fragment

其他面試題推薦:衝刺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。

進階篇

待更新

發佈了28 篇原創文章 · 獲贊 12 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章