0

アプリをナビゲートするユーザーに基づいてフラグメントを追加するアクティビティに小さなレイアウトがあります。

ユーザーが次のようにナビゲートすると仮定します。

アクティビティ -> フラグメント A -> フラグメント B -> フラグメント C -> ボタン クリック

フラグメントを非表示にして、空白のアクティビティを再度表示できるようにしたいと考えています。

これは、フラグメントをアクティビティに追加する方法です。

protected void addFragment(Fragment fragment)
    {
        getSupportFragmentManager().beginTransaction().replace(R.id.secondary_fragment, fragment).addToBackStack(fragment.getTitle()).commit();
    }

すべてのフラグメントをクリアするには、次を使用します。

getSupportFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);

ただし、ユーザーが押し戻した場合に (アプリを終了するのではなく) フラグメント C に戻ることができるように、フラグメントをクリアする方法はありますか?

4

2 に答える 2

0

おそらく、すべての backStack をポップする代わりに、id と setVisibility によってフラグメント ビューを非表示にするだけですか?

于 2015-05-01T15:38:05.507 に答える
0

ボタンを押したときにクリアスタックを使用して、アクティビティの新しいインスタンスを開始してみてください(説明したように、これが C の後に来ると仮定するのが正しい場合)。このようにして、最初のアクティビティインスタンスにはフラグメント C までが残り、2 番目のアクティビティインスタンスは任意のものになります (フラグメント A > フラグメント D > フラグメント F)。また、アクティビティのバックスタックをポップ/クリアする必要はありません。

HTH

于 2015-05-01T17:11:13.837 に答える