3

ナビゲーションにメニュー ドロワーを使用する単一のアクティビティを持つアプリケーションがあります。メニュー ドロワーの項目がクリックされるたびに、表示されているフラグメントを新しいものに置き換えて、バックスタックに追加します。4 つのメニュー項目 ABCDE と、対応するフラグメントがあるとします。ユーザーが A を開くと、バックスタックで終了します。ユーザーが B をクリックしてからもう一度 A をクリックすると、バックスタックは A --> B --> A のようになり、フラグメント A が表示されます。

ユーザーが戻るボタンを使用して戻ると、最初のフラグメント B が表示されます。ユーザーが再び戻ると、フラグメント A が再び表示されます (B を表示する前に表示されたもの)。アクティビティ バックスタックでは、ユーザーは B からアプリの外に出て、A に戻ることはありません。

フラグメントが追加されたときに、バックスタック内のフラグメントの既存のバックスタック エントリをすべて削除するにはどうすればよいですか? バックスタックの各フラグメントの最大エントリを 1 つだけにしたいのです。

私の言いたいことが分からない場合は、お気軽にお尋ねください。

4

1 に答える 1

0

サンプルコード:-

        Fragment newFragment;
        FragmentTransaction transaction = getFragmentManager().beginTransaction(); 
        newFragment = new MyFragment();
        transaction.replace(R.id.content_frame, newFragment);
        transaction.addToBackStack(null);
        transaction.commit();

コードで次の行に言及している場合は、これを削除してください:-

            transaction.addToBackStack(null);
于 2014-08-04T12:43:44.347 に答える