在主fragmentactivity设置
在使用viewpager页面为viewpager设置
//关闭预加载,默认一次只加载一个Fragment viewPager.setOffscreenPageLimit(5);//这样可以每个子页面保证只创建一次//5可以设置更大,
setOffscreenPageLimit网上给的解释是加载fragment的个数,如果设置是1的话感觉并没有用,会导致只保留目前选择的fragment周围2个和他自己,再切换到其他的fragment时,会重新进行onCreateView,现在我设置为5就为了让所有fragment保留下来,不扩大内存的使用
在子Fragment中
onCreateView方法中进行初始化
并且重写setUserVisibleHint方法
@Override public void setUserVisibleHint(boolean isVisibleToUser) { // TODO Auto-generated method stub super.setUserVisibleHint(isVisibleToUser); // 每次切换fragment时调用的方法 if (isVisibleToUser) { try { read();//网络获取 } catch (Exception e) { } } }这样可以保证切换页面时再进行网络链接,
因为setUserVisibleHint执行于onCreateView之前,所以可能在FragmentActivity加载的第一个页面时会有空指针的异常,
一般来说,只需要在第一个加载的页面try catch就可以了,其他页面都是初始化好了的
setUserVisibleHint方法会在切换子fragment时调用