私はプロローラムを持っており、どこでも解決策を見つけることができません。addToBackStackは機能しません。フラグメントをポップする代わりにアクティビティを閉じます。
戻るボタンを押したときにアプリが前のフラグメントに戻ることはなく、アクティビティを閉じます。
私は、[1]、[2]、[3]、[4]の4つの断片を表示する活性を持っています。最初の3つのフラグメントをアクションバーで切り替えることができます。バックスタックに追加する必要はありません。
フラグメント[4]は、フラグメント[3]で選択されたアイテムの詳細図です。私が[4]を押して戻ると、私はフラグメント[3]に戻り、アプリケーションを終了しません。
遷移は、断片が配置された活性により、このように行われる:toBackStack遷移からである場合を除き、常に偽である
private void replaceFragment(Fragment fragment, boolean toBackStack){
if(fragment != null){
FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.container, fragment);
if(toBackStack)
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
}
}
[3]〜[4]。
私がすべての遷移でTrueStackに渡すと、アクティビティはとにかく閉じます。
アクティビティで状態を保持するのではなく、onBackPressed()でこれを行う方が良いかもしれません if(getFragmentManager() ().getBackStackEntryCount()> 0) getFragmentManager()。popBackStack(); – toidiu