Mortar/Flow/Dagger2で遊んでいます。
私のアプリには2つの画面があります:
画面 1 に Google マップが表示されます。MapFragment ではなく MapView オブジェクトを直接使用しており、ルート アクティビティのライフサイクル イベントに適切にフックしました。
画面 2 は、マップ マーカーからの情報を示しています。画面 1 から画面 2 に移動します。
Flow.get(context).goTo(new Screen2());
問題は、スクリーン 2 からスクリーン 1 に戻ると、 を使用Flow.get(context).goBack();してスクリーン 1 とその MapView がゼロから再作成され、以前の状態などが失われることです。実際、スクリーン 1 とそのプレゼンターのビューの両方が破棄されていることがわかります。画面 2 に移動すると、画面 1 に戻るとすべてが再作成されます。
フロー サンプルにビュー ステートを保存および復元するメカニズムがあることは知っていますが (私はそれを使用しています)、十分ではないようです。
バックスタックで、画面 1 のビューとプレゼンターの状態を保存して復元する方法はありますか? Activity1 と Activity2 で自然に行われるように、正しいナビゲーション ワークフローを実現するためです。
ありがとう!