新しいGoogleMapsAPI(v2)を使用していますが、フラグメントに問題があります。アプリに2つのフラグメント(マップ、リスト)があり、ユーザーはそれらを切り替えることができます。これまでのところ、このコードで正常に動作します。
if (itemPosition == 0) {
getSupportFragmentManager().beginTransaction()
.replace(R.id.fragmentpos, myMapFragment).commit();
} else if (itemPosition == 1) {
getSupportFragmentManager().beginTransaction()
.replace(R.id.fragmentpos, myListFragment).commit();
}......
マップを操作し、リストフラグメントに切り替えてからマップフラグメントに戻ると、マップの最後の位置が保存されません。これは私が望んでいることではありません。マップを「残した」ときにマップを保存状態にしておく必要があります。これを実現するにはどうすればよいですか。カメラの位置を保存しようとしました
public void onSaveInstanceState(Bundle outState){
outState.putDouble("LAT", mMap.getCameraPosition().target.latitude);
outState.putDouble("LON", mMap.getCameraPosition().target.longitude);
outState.putFloat("BEAR", mMap.getCameraPosition().bearing);
...
}
onCreateView()で復元しますが、バンドルは常にnullです。フラグメントを置き換えると、onSaveInstanceStateが呼び出されません。
では、どうすればマップの状態を保存できますか?