❤出现问题:
点击切换ViewPager的界面,设置ViewPager的currentItem,有时会初始化Fragment ,有时不会初始化。如:ViewPager中含四个Fragment,从第1,3,4界面分别进入2界面,无论中间做了那些切换操作,只要最后是从1,3进入2,setCurrentItem就不会导致2界面做初始化操作,从4界面进入就会做初始化。
❤分析原因:
ViewPager的默认加载方式是缓存当前界面前后相邻的两个界面,即最多共缓存包括当前界面在内的三个界面信息。当滑动界面时,非相邻界面信息将被释放。
具体分析详见 http://blog.csdn.net/liweijie_chengxuyuan/article/details/45629665
❤解决方案:
如果想要1,3,4界面,切换至2界面,都不使2界面进行初始化操作,通过设置 mViewPager.setOffscreenPageLimit(2)。
参数:int limit --缓存当前界面每侧的界面数
上述为例:表示点击4界面,2/3界面就被存入缓存啦;点击1界面,2/3界面就会被存入缓存~
今天早上想该问题,一直没想出来,中午去健身房游一圈回来,问题就被想明白了。希望看到该博客此处的朋友,遇到问题保持清醒的头脑,放松自己的大脑,让问题轻松愉快速度的被解决~