错误产生 setOffscreenPageLimit
Activity嵌套几个fragment,其中一个fragmeng 在通过viewPaget+ fragmeng 嵌套时,
FragmentAdapter mFragmentAdapter = new FragmentAdapter(getActivity().getSupportFragmentManager()
, mFragmentList);
viewPager.setAdapter(mFragmentAdapter);
viewPager.setOffscreenPageLimit(3);//tabs为tab数
执行到 viewPager.setOffscreenPageLimit(3); 就会报如上错误,
去掉该行,由于fragment 切换默认只缓存相邻的一个fragment,当切换到第三个fragment 时 ,第一个fragment 已经销毁,里面的变量值为空,当再次切换到第一个fragment时 。第一个fragment显示空白,
除非在管理的fragment 手动执行子fragment方法,请求数据 进行刷新,
解决方案 getChildFragmentManager()
如果 添加 viewPager.setOffscreenPageLimit(3); 通过缓存方式 处理
//第一次getFragmentManager()获取到的FragmentManager,只提供给activity那一层使用。
//在viewPager那一层只能使用getChildFragmentManager()获取FragmentManager来处理子fragment。
FragmentAdapter mFragmentAdapter = new FragmentAdapter(getChildFragmentManager()
, mFragmentList);
viewPager.setAdapter(mFragmentAdapter);
viewPager.setOffscreenPageLimit(3);//tabs为tab数