onViewStateRestored

Android ViewPager+Fragment生命周期优化

巧了我就是萌 提交于 2019-12-05 23:33:31
一.页面缓存 ViewPager默认会缓存1~2个页面,也就是当前页面的前一个页面和后一个页面,如果后一个页面不存在,则不在缓存,反之会被缓存 offscreenPageLimit的默认值为1 int offscreenPageLimit = mViewPager.getOffscreenPageLimit(); Log.e("MainActivity", "offscreenPageLimit="+offscreenPageLimit); 1.1轮播图 有时,需要使用ViewPager+反射匀速Scroller+ImageView做轮播图时,轮播的图片超过4个就会出现空白的问题,对于这种问题,明细我们需要把 offscreenPageLimit设置为n-1,(n为图片的个数),这样把图片缓存起来(轮播图一般在首页,长期存在,因此也就不要想着及时释放掉这几张图片了) mViewPager.setOffscreenPageLimit(imageList.size()-1); 二. 当前视图 Fragment更新 ViewPager+Fragment也会受到 offscreenPageLimit的影响,对于这个,建议使用n-1模式 List<BaseFragment> fragmentList = Collections.synchronizedList(new ArrayList