使用viewpage与fragment写底部导航栏的时候,多个Fragment切换会导致某个fragment数据丢失,或者需要重新加载数据。
实际原因:是因为Fragment的生命周期导致的。当Fragment不可见时,系统可能会销毁Fragment实例,导致数据丢失
解决办法:
简单粗暴:设置ViewPage缓存界面数
mViewPager.setOffscreenPageLimit(3);
此后切换fragment则会进行数据缓存,解决上述问题
完整代码
mPagerList.add(new NotificationFragment());
mPagerList.add(new ParamFragment());
mPagerList.add(new HelpFragment());
MainFragmentPagerAdapter fgAdapter = new
MainFragmentPagerAdapter(getSupportFragmentManager(),mPagerList);
mViewPager.setAdapter(fgAdapter);
mViewPager.setOffscreenPageLimit(3);