私が試した解決策は、異なるタブのアクティビティを切り替えながら、removeView() を使用して onpause() でマップを削除し、onResume() で addView() を使用して再度追加することです。
マップは相対レイアウトで拡張され、そのレイアウト自体から追加および削除されます。
onCreate() で:
setContentView(R.layout.rel_layout);
rel = (RelativeLayout)findViewById(R.id.rel);
LayoutInflater inflater = LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.map_layout, null);
rel.addView(view);
onPause() および onResume() メソッド:
@Override
protected void onPause()
{
rel.removeView(view);
super.onPause();
}
@Override
protected void onResume()
{
if (view.getParent()!=rel)
rel.addView(view);
super.onResume();
}