2016-05-12 10 views
0

私はいくつかの内容でナビゲーション引き出しを持っています。選択したナビゲーションコンテンツをクリックすると、ListFragmentがアクティビティコンテナに追加されます。選択したListFragmentの位置をクリックすると、この選択されたコンテンツの詳細が表示されます。よりよいアプローチは何ですか:ListFragmentのonClick DetailFragment

  1. DetailFragmentで(ListFragmentです)MainActivityコンテナを交換してください。 DetailFragmentが含ま

  2. 新DetailActivity。 または、別のアプローチがあります。

+0

'fragmentTransaction.addToBackStack(名)'の前に私はbackstackハンドルを意味するものではありませんフラグメントトランザクション –

+0

をコミットします。私はDetailFragmentでListFragmentを交換したいリスト項目をクリックし、私はちょうどこののより良いapprochを探しているとき、私は、ListFragmentを持っています。 – Spyker

+0

これは私が実際に提案したより良いアプローチです。 –

答えて

0

だから、基本的にあなたのDetailFragmentの取引のためのあなたのListFragmentの内側にあなたのListFragment

使用getChildFragmentManager()内部ChildFragmentを持っている必要があります。将来的にDetailFragmentからListFragmentに何かを通知する必要がある場合は、これが最善の方法です。 あなたのアクティビティには、ListFragmentのフラグメントホルダがあります。あなたのListFragmentには、あなたのケースのDetailFragmentにあなたの子フラグメントのフラグメントホルダーがあります。あなたは、あなたのListActivityコンテキストを失うことになるよう、リストビューの各クリックに対して個別のDetailActivityを持つ

は最善のアプローチ良いのですが、ありません。参考のため

https://stackoverflow.com/a/17132254/1115353

0

私はほとんどの場合、それはあなたが引き出しのメニュー項目を切り替えているとき、新しいものと古いの断片を交換する方が良いでしょうと信じています。 MainActivity上の既存のフラグメントにもっと深く入る場合、スタックにフラグメントを保存して "add"メソッドを使うべきです。

あなたが引き出しから内容を変更する場合 - それはフラグメントを交換する方が良いでしょう。 あなたは追加の詳細のように、既存の上に新しいコンテンツを追加したい場合は、メソッドのGmailアプリはそのアプローチを使用しています

0

第二のアプローチが優れている、「追加」を使用する必要があります。

enter image description here

enter image description here

関連する問題