2016-04-07 17 views
0

フラグメントを同じコンテナR.id.containerに追加する次のコードがあります。私はgetSupportFragmentManager().getFragments()をセルするとき、私は二つの断片を見ることができる私の質問を最初に私は、一つの断片を追加し、ユーザーがそれと対話した後、私はなぜフラグメントを置き換えるのではないのですか?

FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); 
fragmentTransaction.replace(R.id.container, fragment); 
fragmentTransaction.addToBackStack(null); 
fragmentTransaction.commit(); 

同じコードで別のものを追加します。 replaceが実際に置き換えて追加するのはなぜですか?

+0

実際に置き換えられます。間違ったことをする必要がありますが、投稿したコードからは分かりません。 –

答えて

1

addToBackStack(null); 

ので、2つの断片を保持することは、ユーザーが以前の状態に戻すことが可能であることを意味します。 あなたがfragment2、(置き換える使用)fragment1を追加した場合、唯一のfragment2が示されているが、バックユーザを押した場合、FragmentManagerはfragment1を表示する必要があるので、それは両方のフラグメントへの参照を保持します。

関連する問題