0

Tab Activity は廃止されたため、フラグメントを使用してタブを実装しようとしています。多くの StackOverFlow の質問でわかるように、バック スタックは、フラグメントを操作する際の問題であり、独自のバック スタックがあります。

だから私がやろうとしているのは、各タブにフラグメントがあり、このフラグメントは同じタブ内の別のフラグメントを呼び出すことができ、他のタブでも同じです。

アクティビティは 1 つしかないため、アプリケーション全体のバック スタックは 1 つだけです。そのため、タブごとに分離されたカスタム バック スタックを作成する必要があります。他の質問でも同じ考えです。カスタム バック スタックを作成する方法を見つける必要がありますが、参考になる例が見つかりませんでした。

似たようなことをしているチュートリアルやコードの例はありますか? 前もって感謝します。

4

2 に答える 2

0

アプリケーション全体のバックスタックがありますが、フラグメントのバックスタックもあります。

おそらくこれを読んでください:

http://developer.android.com/guide/components/fragments.html#Transactions

フラグメントトランザクション(追加、置換、または削除)を実行すると、そのトランザクションをバックスタックに追加できます。

FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.fragmentContainer, fragment);
ft.addToBackStack(null);
ft.commit();

そして、押し戻すと、最新のフラグメントがフラグメントのバックスタックから「ポップ」されます。

onBackPressed()をオーバーライドして、そこでフラグメントのバックスタックを管理することもできます。(私は現在、これを効率的に行う方法を見つけようとして問題を抱えています)。

とにかく、バックスタックを処理するためにFragmentManagerから利用できるいくつかの呼び出しがあります。私にとって最も便利なのは:

FragmentManager.getBackStackEntryCount() 

FragmentManager.PopBackStack()
于 2012-09-25T06:51:20.167 に答える