FragmentStatePagerAdapter 和 FragmentPageAdapter
FragmentStatePagerAdapter
FragmentStatePagerAdapter會銷毀不需要的fragment。事務提交后,activity的FragmentManager中的fragment會被徹底移除。
FragmentStatePageAdapter類名中的“State”表名:
FragmentPageAdapter
FragmentPageAdapter 對於不再需要的fragment,FragmentPageAdapter會選擇調用事務的detach(Fragment)方法來處理它,而非remove(Fragment)方法,也就是說,Fragment只是銷毀了fragment視圖,Fragment實例還保留在FragmentManager中。因此,FragmentPagerAdapter創建的fragment永遠不會銷毀。
用哪個?
創建fragment多,占用內存大使用FragmentStatePagerAdapter以節省內存。例如多列表明細
少量固定fragment,占用內存少使用FragmentPagerAdapter。例如分頁顯示用戶信息