0

次の状況を処理する方法についてアドバイスをください..ナビゲーションドロワーを備えたメインアクティビティがあります..ユーザーがドロワー内のアイテムをクリックすると、現在添付されているフラグメントを別のフラグメントに変更します-押されたドロワーアイテムに応じて。また、ユーザーが同時に既に添付されているフラグメントに関連するアイテムをクリックしたときの状況を処理し、フラグメントの再作成を回避したいと考えています..

そこで、次の解決策を思いつきました。現在のフラグメントの TAG を保持するプロパティがあります。ユーザーがドロワーからアイテムをクリックすると、タグが一致しているかどうかを確認し、一致していないかどうかを切り替えます..動作します。

しかし、バックスタック ナビゲーションに問題があります。ユーザーが戻るボタンをクリックしたときに TAG 保持プロパティを変更する方法がわかりません。フラグメントは適切に変更されますが、TAG プロパティは同じままであるため、すべてが壊れてしまいます (ユーザーが以前のアイテムをクリックすると、リダイレクトされず、さらにバック スタックからプッシュされたフラグメントに関連するアイテムをクリックした後)それは再作成を行います:/)

皆さんが私の問題がどこにあるかを理解していただければ幸いです。ここではコードを提供しません。私の問題は実際にはコードの既存の部分ではなく、架空のまだ存在しない部分にあるため、必要ではないと思います:)バックスタックからプッシュされた状況を処理する必要があるだけです..

前もって感謝します!

4

1 に答える 1

1

何もコールバックする必要はありません!

たとえば、各トランザクションでフラグメントが置換されるレイアウトが R.id.mycontent であるとしましょう

フィールドに TAG を配置する代わりに、ドロワーをクリックするたびに次の操作を実行できます。

String currentTag = getSupportFragmentManager.findFragmentById(R.id.mycontent).getTag();

これを使用して、クリックされたものと比較します。

于 2013-08-27T13:09:24.607 に答える