私はこのようなコード化されているが動作していない:PopBackStackが正しく
フラガ>> FragB >> FragC >>
私はFragDのonBackpress()を押すと、それはフラガ上に直接行くが、私がしたいのFragDそれはFragCに行きなさい。ここ
BackPressコード:
if (getActivity().getSupportFragmentManager().getBackStackEntryCount() > 0) {
back_btn.setVisibility(View.GONE);
getActivity().getSupportFragmentManager().popBackStack();
}
がフラグメントコードの交換:あなたはaddToBackStack方法
public void setmFragmentContainer(Fragment fragment)
{
final String tag = fragment.getClass().getName();
FragmentManager manager = getSupportFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
transaction.replace(R.id.layout_content, fragment, tag);
transaction.addToBackStack(tag);
transaction.commit();
}
このメソッドを使用してbackstackにすべてのフラグメントを追加する必要が
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
FragmentA fragmentA = new FragmentA();
fragmentTransaction.replace(R.id.framelayoutinner, fragmentA);
fragmentTransaction.addToBackStack("fragmentA");
fragmentTransaction.commit();
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
FragmentA fragmentB = new Fragmentb();
fragmentTransaction.replace(R.id.framelayoutinner_2, fragmentB);
fragmentTransaction.addToBackStack("fragmentB");
fragmentTransaction.commit();
フラグメントトランザクションを実行中にaddtobackstackメソッドを使用しましたか? –
フラグメントトランザクションをバックスタックに追加する場合は、バックスタックを 'onBackPressed()'で処理する必要はありません。そのフラグメントをホストしているアクティビティによって注意が払われます。 –
2つの容器を使用していますか? framelayoutinnerとframelayoutinner_2 – Reena