私のアクティビティの 1 つは、Google マップを含むフラグメントを切り替えます。
最初は、フラグメントの子フラグメント マネージャー (ChildFragmentManager) を使用して追加しようとしましたSupportMapFragment
。問題なく動作しますが、フラグメントごとにマップが再度読み込まれるため、多くの時間がかかります。
最初に配置された場所に何らかの形で接続されているため、あるフラグメントから切り離しSupportMapFragment
て別のフラグメントに取り付けることができませんでしたViewGroup
。
最後にMapView
、アクティビティで作成されたプレーン オブジェクトを使用し、それをアクティブ フラグメントのビューグループに追加し、別のフラグメントのビューグループに配置する前に削除することにしました。
すべてonSaveInstanceState
正常に動作します (MapView ではonResume
、onPause
、onDestroy
、などのすべてのアクティビティ ライフサイクル メソッドを手動で呼び出す必要がありますonSaveInstanceState
)。mapView.onSaveInstanceState
アクティビティを呼び出そうとすると、アプリがクラッシュします。
他の誰かが GoogleMap をいくつかのフラグメントでうまく再利用したのだろうか?