58

pagerFragmentバックスタックに追加されて表示されるフラグメント(と呼びます)があります。を保持しviewPagerますFragmentPagerAdapterFragmentPagerAdapterA と B の 2 つのフラグメントを (たとえば) 保持します。

フラグメントの最初の追加はうまく機能します。

フラグメント A には、クリックするとフラグメント (C) がバックスタックに追加されるボタンがあります。

問題はこれです: そのフラグメント (C) を追加してからクリックして戻ると、pagerAdapterが空になり、内部にフラグメントが表示されません。

pagerFragmentハックを使用してs の子フラグメント (A および B) を破棄するとonDestroyView()、問題は解決しますが、このハックは使用したくありません。

問題が何であるかについて何か考えはありますか?

4

5 に答える 5

92

私も同じ問題を抱えていました。私にとっての解決策は簡単でした:

私が持っていたonCreateViewで:

// Create the adapter that will return a fragment for each of the three
// primary sections of the app.
mSectionsPagerAdapter = new SectionsPagerAdapter(getActivity()
    .getSupportFragmentManager());

SectionPageAdapter は次のようなものです。

class SectionsPagerAdapter extends FragmentPagerAdapter {
...
}

getSupportFragmentManager をに変更した後

mSectionsPagerAdapter = new SectionsPagerAdapter(getChildFragmentManager());

それは働き始めました!お役に立てれば。

于 2013-09-18T13:21:07.863 に答える