5

XML ファイルで定義されている 3 つのフラグメントを持つアプリケーションに取り組んでいます。

 [HeaderFragment] 

 [MainFragment] 

 [FooterFragment]

最初の画面で 3 つのフラグメントが開始されます。HeaderFragment と FooterFragment は静的であるため、コンテンツは変更されません。

MainFragment は、ボタンと透明な背景 ( MenuFragment) を持つ初期メニューです。メニューの項目をクリックすると、次のようMenuFragmentに新しいフラグメント ( DetailsFragment)に置き換えられます。

FragmentTransaction transaction = mFragmentManager.beginTransaction();
Fragment newFragment = new DetailFragment();
transaction.replace(R.id.content_container, newFragment);
transaction.addToBackStack(newFragment.getTag());
transaction.commit();

が表示され、DetailFragment押し戻すと がMenuFragment表示され、すべてが正常に機能します。

これが私の問題です:

内部にはDetailFragment、コンテンツをフィルタリングするトグル オプションがあります。これはボタンです。これをクリックすると、上記のコードと同じ方法でDetailFragmentFilteredが置き換えられます。DetailFragment唯一の違いは、フィルタリングして [戻る] を押した後、BackStack に追加しないことですMenuFragment

フィルター ボタンをクリックして [戻る] を押すと、DetailFragment(またはDetailFragmentFiltered) が の後ろに表示されますMenuFragment。もちろん、私はこれを望んでいません。

4

1 に答える 1

4

レイアウトで最初のフラグメントを「android:name」として設定することにより、XML との静的フラグメント関係を使用しないようにしてください。

フレームレイアウトを使用して XML のレイアウトを作成し、このチュートリアルに示すようにフラグメントを柔軟に追加します。

http://developer.android.com/training/basics/fragments/fragment-ui.html

于 2012-07-18T12:24:50.683 に答える