10

私のアプリケーションには、FrameLayoutさまざまなフラグメントを追加しているがあります

FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.fragment_content, fragment, fargmentTag);
ft.commit();

を使用してft.replace(R.id.fragment_content, fragment, fargmentTag);から、他の場所で呼び出したようです

getSupportFragmentManager().findFragmentByTag(fargmentTag); 

私はいつも得るnull

ただし、この問題addの代わりに使用するreplaceと修正されますが、各フラグメントが他のフラグメントの上に追加され、下に他のフラグメントが表示されるという別の問題が発生します。

を使用したいreplaceのですが、保存されたフラグメント状態が必要です。また、私は使用していないことに注意してaddToBackStackください。

4

3 に答える 3

4

これを試してみてください。うまくいくでしょう。

FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.fragment_content, fragment, fragmentTag);
ft.commitAllowingStateLoss();
于 2013-05-20T14:56:10.663 に答える