页面的整体布局是: Fragment+ViewPager+Fragment
Fragment中放一个ViewPager,ViewPager中又容纳多个Fragment
如图所示 , 底部的4个按钮是用FragmentTabHost做的, 分别对应4个Fragment.(暂且称之为 大Fragment)
商城的Fragment又是Indicator+ViewPager的布局,
ViewPager中每个页面又是Fragment.(暂且称之为 小Fragment)
当第一次打开商城页面时,ViewPager中的数据是可以正常显示的. 但是如果点击了其他页面,比如消息页面,再去打开商城页面的话, ViewPager中的数据就不会显示.
但也不是所有的数据不显示,只是离开时已经加载进内存的不会显示. 比如说, 离开商城页面时,我选中的Tab是 “旺铺”,那么”旺铺”的下一个Tab “推荐”也是已经加载进内存的. 那么我再返回到商城页面时, “旺铺”和”推荐”两个Tab对应的ViewPager中的页面就不会有数据, 但是滑动到其他的页面,数据可以显示.
在商城的 大Fragment中:
mViewPager.setAdapter(new MallPagerAdapter((getActivity().getSupportFragmentManager())));
其中MallPagerAdapter是继承FragmentStatePagerAdapter的.
打印Log看了一下:
再返回商城页面时, setAdapter是可以执行的, 但是 MallPagerAdapter中的getItem(int position)却不执行(想想确实也应该这样,因为已经加载过了么,所以就不执行了)
网上查了一下, 说是把getSupportFragmentManager()改成getChildFragmentManager(), 但是我改成了getChildFragm