在我們Android開發(fā)中诱咏,ViewPager是我們經(jīng)常使用的一個組件苔可,而這個組件經(jīng)常和我們的Fragment結(jié)合在一起用,以此來完成滑動來顯示不同的Fragment袋狞。我們要管理這里面的Fragment的切換焚辅,可以使用兩種Adapter。FragmentStatePagerAdapter和FragmentPagerAdapter苟鸯,那么這兩種方法有什么區(qū)別呢同蜻?
定義
FragmentStatePagerAdapter
顧名思義,我們的這個FragmentStatePagerAdapter早处,在我們切換不同的Fragment的時候湾蔓,我們會把前面的Fragment銷毀,而我們系統(tǒng)在銷毀前砌梆,會把我們的我們Fragment的Bundle在我們的onSaveInstanceState(Bundle)保存下來默责。等用戶切換回來的時候,我們的Fragment就會根據(jù)我們的instance state恢復(fù)出來么库。FragmentPagerAdapter
使用這種Adapter傻丝,我們的Fragment在切換的時候,不會銷毀诉儒,而只是調(diào)用事務(wù)中的detach方法葡缰,這種方法,我們只會把我們的Fragment的view銷毀,而保留了以前的Fragment對象泛释。所以通過這種方式創(chuàng)建的Fragment一直不會被銷毀滤愕。
怎么用?
通過上面怜校,我們就可以很容易得出间影,我們的FragmentPagerAdapter適用于Fragment比較少的情況,因為我們會把每一個Fragment保存在內(nèi)存中茄茁,不用每次切換的時候魂贬,去保存現(xiàn)場,切換回來在重新創(chuàng)建裙顽,所以用戶體驗比較好付燥。而對于我們的Fragment比較多的情況,我們需要切換的時候銷毀以前的Fragment以釋放內(nèi)存愈犹,就可以使用FragmentStatePagerAdapter键科。