从菜单进入一个Fragment,该Fragment用ViewPager管理两个子Fragment,第一次进入时,子Fragment能正常显示,切换也没问题。
然后退出当前页面,到菜单界面,再次进入时,发现子页面没有显示,主要原因是ViewPager的缓存机制导致的。
第一种解决方法,用FragmentStatePagerAdapter替换FragmentPagerAdapter
viewPager.setAdapter(new FragmentStatePagerAdapter(getActivity().getSupportFragmentManager(), 0) {
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return titles.get(position);
}
@Override
public Fragment getItem(int position) {
return fragments.get(position);
}
@Override
public int getCount() {
return fragments.size();
}
@Override
public Parcelable saveState() {
// 此处注意,不要缓存
return null;
}
@Override
public void restoreState(Parcelable state, ClassLoader loader) {
// 此处注意,不要缓存
}
});