3 回答

TA貢獻(xiàn)1826條經(jīng)驗(yàn) 獲得超6個贊
Fragments
FragmentStatePagerAdapter
Bitmaps
FragmentPagerAdapter
ViewPager
Adapter
View
Adapter
Fragment

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超5個贊
FragmentPagerAdapter
將整個片段存儲在內(nèi)存中,如果使用大量的片段,則會增加內(nèi)存開銷。 ViewPager
.相反,它的兄弟姐妹, FragmentStatePagerAdapter
只存儲碎片的保存狀態(tài),并在所有碎片失去焦點(diǎn)時銷毀它們。 因此 FragmentStatePagerAdapter
當(dāng)我們必須使用動態(tài)片段時,應(yīng)該使用它,比如帶有小部件的片段,因?yàn)樗鼈兊臄?shù)據(jù)可以存儲在 savedInstanceState
而且,即使有大量的片段,它也不會影響性能。 相反,它的兄弟姐妹 FragmentPagerAdapter
應(yīng)該在我們需要將整個片段存儲在內(nèi)存中時使用。 當(dāng)我說整個片段保存在內(nèi)存中時,意味著它的實(shí)例不會被銷毀,并且會造成內(nèi)存開銷。因此,建議使用 FragmentPagerAdapter
只有當(dāng)碎片數(shù)量較少時 ViewPager
.如果碎片是靜態(tài)的,那就更好了,因?yàn)樗鼈儾粫写罅康膶ο?,這些對象的實(shí)例將被存儲。
FragmentStatePagerAdapter:
帶著 FragmentStatePagerAdapter
,您不需要的片段就被銷毀了。一個事務(wù)被提交到從您的活動的片段中完全刪除該片段。 FragmentManager
.州 FragmentStatePagerAdapter
是因?yàn)樗鼤饶愕乃槠?/trans> Bundle
從… savedInstanceState
當(dāng)用戶向后導(dǎo)航時,將使用片段的狀態(tài)恢復(fù)新的片段。
FragmentPagerAdapter:
通過比較 FragmentPagerAdapter
什么都不做,當(dāng)碎片不再需要的時候。 FragmentPagerAdapter
打電話 detach(Fragment)
關(guān)于事務(wù)而不是 remove(Fragment)
.此破壞是碎片的視圖,但將碎片的實(shí)例保留在 FragmentManager
因此,在 FragmentPagerAdapter
永遠(yuǎn)不會被摧毀。

TA貢獻(xiàn)1850條經(jīng)驗(yàn) 獲得超11個贊
FragmentPagerAdapter
- 3 回答
- 0 關(guān)注
- 1382 瀏覽
添加回答
舉報