FragmentStatePagerAdapter 和 FragmentPagerAdaptre的不同
簡單說:
使用FragmentStatePagerAdapter會銷毀掉不需要的fragment部脚。事務(wù)提交后裤纹,可將fragment從activity的FragmentManager中徹底移除丧没。類名中的“state”表明:在銷毀fragment時锡移,它會將其onSaveInstanceState(Bundle) 方法中的Bundle信息保存下來呕童。用戶切換回原來的頁面后,保存的實(shí)例狀態(tài)可用于恢復(fù)生成新的fragment.
FragmentPagerAdapter的做法大不相同淆珊。對于不再需要的fragment夺饲,F(xiàn)ragmentPagerAdapter則選擇調(diào)用事務(wù)的detach(Fragment) 方法,而非remove(Fragment)方法來處理它施符。也就是說往声,F(xiàn)ragmentPagerAdapter只是銷毀了fragment的視圖,但仍將fragment實(shí)例保留在FragmentManager中戳吝。因此浩销, FragmentPagerAdapter創(chuàng)建的fragment永遠(yuǎn)不會被銷毀。
應(yīng)用:
ViewPager中顯示的Item數(shù)量固定時使用FragmentPagerAdapter即可听哭,如果數(shù)量非固定即使用FragmentStatePagerAdapter慢洋。