0

簡単な質問があります。コンテナからフラグメント A を削除してフラグメント B を追加すると、フラグメント A の状態は失われますか?

ユーザーが写真を撮るアプリ (フラグメント A) があります。その後、フラグメント A を隠し、フラグメント B を表示または作成して、ユーザーが画像を確認できるようにしました。フラグメント B では、ユーザーは写真を撮り直すオプションを持っています。この場合、フラグメント B を削除してフラグメント A を表示していました。問題は、カメラのプレビューが再初期化されていなかったため、ユーザーがカムのプレビューを取得していなかったことです。別の写真を撮る。写真を撮ったときにコンテナからフラグメントAを削除することでこれを修正しました。

問題は、多くのフラグメントがあり、それらの間を移動するときに状態を維持する必要があることです。show と hide が状態を維持することは知っていますが、「特別なケースのシナリオ」を持ちたくありません。フラグメント A と B およびフラグメント C、D、E、F の表示と非表示....

4

1 に答える 1

1

フラグメントを削除または置換し、トランザクションをバック スタックに追加すると、削除されたフラグメントは停止します (破棄されません)。ユーザーがフラグメントを復元するために戻ると、再起動します。トランザクションをバック スタックに追加しない場合、フラグメントは削除または置換時に破棄されます。ユーザーがフラグメント トランザクションを逆方向にナビゲートできるようにするには、FragmentTransaction をコミットする前に addToBackStack() を呼び出す必要があります。

于 2013-08-09T09:44:01.897 に答える