1、在ViewPager中默认加载当前屏幕上的界面和左右相邻界面的数据从而实现页面滑动的快速切换。可以通过调用setOffscreenPageLimit(int)方法,定制预加载相邻页面的数目。
2、FragmentStatePagerAdapter与FragmentPagerAdapter基本相同,唯一的区别就是二者在卸载不再需要的fragment时所采用的处理方法不同。
使用FragmentStatePagerAdapter会销毁掉不需要的fragment,事务提交后可将fragment从activity中的 FragmentManager中彻底移除FragmentStatePagerAdapter中的‘state’表明:在销毁fragment时,它会将onSaveInstanceState(Bundle ) 方法中的bundle信息保存下来。用户切换回原来的页面后,保存的实例状态可用于恢复生成新的fragment。
相比之下FragmentPagerAdapter的做法大不相同。对于不再需要的fragment,FragmentPagerAdapter则选择调用事务的delect(Fragment) 方法,而非remove(Fragment) 方法来处理它,也就是说FragmentPagerAdapter只是销毁了fragment的视图,但任然将fragment实例保留在 FragmentManager中,因此FragmentPagerAdapter创建的fragment永远不会被销毁。
2、FragmentStatePagerAdapter与FragmentPagerAdapter基本相同,唯一的区别就是二者在卸载不再需要的fragment时所采用的处理方法不同。
使用FragmentStatePagerAdapter会销毁掉不需要的fragment,事务提交后可将fragment从activity中的 FragmentManager中彻底移除FragmentStatePagerAdapter中的‘state’表明:在销毁fragment时,它会将onSaveInstanceState(Bundle ) 方法中的bundle信息保存下来。用户切换回原来的页面后,保存的实例状态可用于恢复生成新的fragment。
相比之下FragmentPagerAdapter的做法大不相同。对于不再需要的fragment,FragmentPagerAdapter则选择调用事务的delect(Fragment) 方法,而非remove(Fragment) 方法来处理它,也就是说FragmentPagerAdapter只是销毁了fragment的视图,但任然将fragment实例保留在 FragmentManager中,因此FragmentPagerAdapter创建的fragment永远不会被销毁。