ViewPager使用详解(四):总结

了解了与ViewPager配合使用的PagerAdapterFragmentPagerAdapterFragmentStatePagerAdapter后,那么应该使用哪个Adapter?

ViewPager展示的单页面业务逻辑偏少,主要用于展示信息,则只需要使用PagerAdapter来展示即可。

例如图片列表的大图显示,单页面都只需要一个ImageView,而对单项进行操作的业务逻辑都是一致的,只需要放置在Activity中进行处理即可。

如果ViewPager展示的单页面业务逻辑偏多,这时候使用Fragment来分离业务逻辑,则可以使结构清晰,代码简洁,并且提高代码重用性。

FragmentPagerAdapterFragmentStatePagerAdapter的差别,主要在于后者内部对于Fragment进行状态保存和重用,并且及时回收UI,减少了内存的消耗。

ViewPager展示的页面数量较少或者页面数据量偏少时,可以使用FragmentPagerAdapter,并且结合ViewPagersetOffscreenPageLimit方法,来避免重新创建Fragment的问题。

Fragment数量偏多,或者Fragment包含较多的数据展示时,使用FragmentStatePagerAdapter则更为合适。使用FragmentStatePagerAdapter时,需要注意的是,当Fragment超出ViewPager预加载的范围而被移除时,需要在onSaveInstanceState方法中保存好数据,并且在onCreateViewonViewCreatedonViewStateRestored方法中进行恢复,避免过多的数据读取操作。

示例地址:https://git.oschina.net/kycqdhl3c/BSViewPager.git

你可能感兴趣的:(ViewPager使用详解(四):总结)