FragmentStatePagerAdapter 和 FragmentPageAdapter


FragmentStatePagerAdapter 和 FragmentPageAdapter

FragmentStatePagerAdapter

FragmentStatePagerAdapter會銷毀不需要的fragment。事務提交后,activity的FragmentManager中的fragment會被徹底移除。

FragmentStatePageAdapter類名中的“State”表名: 在銷毀fragment時,可在onSaveInstanceState(Bundle)方法中保存fragment的Bundle信息。用戶切換回來時,保存的實例狀態可用來恢復生產新的fragment。

FragmentPageAdapter

FragmentPageAdapter 對於不再需要的fragment,FragmentPageAdapter會選擇調用事務的detach(Fragment)方法來處理它,而非remove(Fragment)方法,也就是說,Fragment只是銷毀了fragment視圖,Fragment實例還保留在FragmentManager中。因此,FragmentPagerAdapter創建的fragment永遠不會銷毀。

用哪個?

創建fragment多,占用內存大使用FragmentStatePagerAdapter以節省內存。例如多列表明細

少量固定fragment,占用內存少使用FragmentPagerAdapter。例如分頁顯示用戶信息


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM