0
を断片化するフラグメントから移動するとき、私は一つの活性と3つの断片A、Bを持っている、Cそれは私が断片Bに移動してい断片AからメインフラグメントAを保持しているフラグメントBからフラグメントCから。コードは動作し、それが断片BからフラグメントCを開きますが、最初のそれはフラグメントAとちょうどその断片Cを開きます。なぜ、どうすればこの問題を解決できますか?フラグメントB、Cをホストするためにもう1つアクティビティが必要ですか?断片を切り替える何か
方法:
private Fragment contentFragment;
public void switchContent(Fragment fragment, String tag){
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
while (fragmentManager.popBackStackImmediate());
if (fragment != null){
FragmentTransaction transaction = fragmentManager
.beginTransaction();
transaction.replace(R.id.content_frame,fragment,tag);
if (!(fragment instanceof FragmentB)){
transaction.addToBackStack(tag);
}
transaction.addToBackStack(tag);
transaction.commit();
contentFragment = fragment;
}
}
R.id.content_frameは活性setContentViewに使用されるレイアウトのIDです。
あなたがフラグメントを切り替えるために必要なのはFragmentTransactionと交換する方法です。だから、スタックスタックの内容をコメントアウトして、どうなるか見てみよう –