2つのフラグメントを受け取る1つのコンテナを含むアクティビティが1つあります。ユーザーがFragmentAをクリックしたときにAndroidフラグメント単純バックスタット
showFragment(new FragmentA());
private void showFragment(Fragment fragment) {
getSupportFragmentManager().beginTransaction()
.replace(R.id.container, fragment, fragment.getTag())
.addToBackStack(fragment.getTag())
.commit();
}
はその後、私は活動レベルでこのクリックを受け取ると私は呼ん:私は最初のフラグメント開始活動を初期化したら
showFragment(new FragmentB());
を今私は戻って押したときボタンを押すとフラグメントA(正しい)に戻り、もう一度戻るボタンを押すと空の画面が表示されます(ただし、同じアクティビティにとどまります)。私はちょうど(アクティビティは親を持っていないので)アプリを閉じることができます。
フラグメントやバックスタックに関連する投稿がたくさんありますが、これに対する簡単な解決策が見つかりません。フラグメントの数を増やす可能性があるので、フラグメントAまたはフラグメントBをバックプレスしているかどうか確認する必要がある場合を避けたいと思います。そのメソッドを維持する必要があります。
私の問題は、空の画面をスタックなしでスタックに追加していることを認識していないことです。/ FM.getBackStackEntryCount()> 1が問題を解決するかどうかを確認します。ありがとう! – Bugdr0id
フラグメントのコンセプトは非常にトリッキーで広大です!とにかく喜んで助けることができました! –