FragmentPagerAdapter与FragmentStatePagerAdapter差异

时间:2021-12-01 01:47:21

平常使用的FragmentPagerAdapter和FragmentStatePagerAdapter来自android.support.v4.app包用来构建ViewPager。
FragmentPagerAdapter更多的用于少量界面的ViewPager,比如Tab。划过的fragment会保存在内存中,尽管已经划过。
而FragmentStatePagerAdapter和ListView有点类似,会保存当前界面,以及下一个界面和上一个界面(如果有),最多保存3
个,其他会被销毁掉。

注意的是FragmentStatePagerAdapter可能不经意间会造成内存未正常回收,严重导致内存溢出,比如图片资源没有释放,资源引用问
题。(之前碰到过EditTextt由于保存焦点导致Fragment未被释放,以至于内存溢出,设置
editText.saveEanble(false)就可以解决此问题)。