フラグメントからメニューに入るとき、ViewPager管理を持つ2つのサブフラグメントフラグメントは、サブフラグメント通常表示に初めて、切り換えも問題ありません。
そして、現在のページを終了し、メニューインタフェースは、再び入るとき、何のサブページの表示を発見した、主な理由は、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) {
// 此处注意,不要缓存
}
});