私はMosby AndroidアプリにModel-View-Presenterライブラリを使用しています。特定のビューでは、Design Support Library v25.1.0で実装されたBottom Navigationを使用しています。私は1つのアクティビティで3つのフラグメント間を切り替えています。私はMosbyのカスタムRestorableViewStateを使用しています。Mosby MVP - onDestroyView()の後にフラグメントの状態を再作成する方法は?
私が持っている問題は、アクティビティのonSaveInstanceState(バンドルバンドル)にViewの状態を保存していることです。これは、同じアクティビティでフラグメントを交換すると呼び出されず、フラグメントのonDestroyView()だけが呼び出されます。現在、私はフラグメンテーション自体を別々に保存しています(フラグメンテーションの切り替え中にフラグメントが破損することはなく、フラグメントのビューだけが破壊されるので)。しかし、私はMVPアーキテクチャを使用する目的を少し壊してしまいます。
方向変更とフラグメントの交換の両方で、フラグメントの状態を格納するための洗練されたソリューションはありますか?
ハンスがその1つをクリアしてくれてありがとう!はい、私はすぐに置き換えを使用している、実装を実装/フラグメントを表示しているが、私が読んだことは、この種類のUIパターン(メモリが重くなる可能性があります最大5つのビューを実装するための最良の方法ではないかもしれない) 。私たちMosby 3を楽しみにしています! –
よくMosby3はその問題を解決できません。 'replace()'を呼び出すたびに、前のフラグメントが破棄され、新たにインスタンス化されたフラグメントが追加されます。完全に新しい状態とプレゼンターで新しいオブジェクト(フラグメント)を実際に作成しているため、ライブラリ/フレームワークはこの問題を解決できません – sockeqwe
100%クリアするには、このライブラリを使用しました:https://github.com/ncapdevi/FragNav/ blob/master/frag-nav/src/main/java/com/ncapdevi/fragnav/FragNavController.java - switchTabメソッド。それはフラグメントを破壊するものではなく、onDestroyView()だけが呼び出されます。 –