2
以下のメソッドに置き換えられるフラグメントがあります。私はバックスタックに複数のフラグメントを追加するのを防ぐため、私のコードには何か問題があると思います。フラグメントBを2回クリックすると、すべてのインスタンスがバックスタックに追加され、戻るボタンを押すと、2つの作成されたインスタンスが渡されます。Androidフラグメント - 既に存在する場合は、バックスタックからフラグメントを削除します。
public void replaceFragment(Fragment fragment, boolean addToBackStack, boolean customAnimation) {
FragmentManager manager = getSupportFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
String tag = fragment.getClass().getSimpleName();
if (customAnimation) {
transaction.setCustomAnimations(R.anim.slide_in_bottom, R.anim.slide_out_bottom, R.anim.slide_in_bottom, R.anim.slide_out_bottom);
}
transaction.replace(R.id.fragment_container, fragment, tag);
// remove from back stack if exists
// always return false!
boolean f = manager.popBackStackImmediate(tag, 0);
if (addToBackStack) {
transaction.addToBackStack(tag);
}
transaction.commit();
}
これは私が本当に必要なものです。ダニエルありがとう。質問があります。バックスタック名として 'null'を渡した理由は?フラグメントタグを渡すとどうなるでしょうか? – Alireza