1

私のアプリケーションにはタブレイアウト(TabHost、TabSpec)が含まれています。
アプリケーションで2つのマップビューを使用しています。したがって、1つのmap_activityで衛星ビューを有効にしてから他のmap_activityに移動すると、他のマップも衛星ビューに表示されます。1つのmap_activityをUSAに向かってドラッグすると、他のマップビューも以前にどこを指していても自動的にUSAに向かってドラッグされます。

一般に、android:process = ":map1"とandroid:process = ":map2"を使用して異なるプロセスで2つのアクティビティを実行すると、上記の問題を解決できます。ここで参照しました...

しかし、タブバー(TabHost、TabSpec)アプリケーションでこの問題をどのように解決できますか?

4

1 に答える 1

0

これは完璧な解決策ではありませんが、仕事を終わらせるでしょう。

マップビューが必要なタブでは、コードで作成します:

    mMapView = new MapView(this, MAPS_KEY);
    mMapView.setClickable(true);
    LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
    mMapView.setLayoutParams(params);
    FrameLayout mapFrame = (FrameLayout) findViewById(R.id.map_container);
    mapFrame.addView(mMapView);

xml は自明です (単なる要求ではない場合)。

このアプローチの問題点は、mapview がインスタンス化されると古い位置が記憶されるため、マップを配置したい新しい位置に移動する必要があることです。次のように実行できます。

mMapView.getController().animateTo(location);
                        mMapView.getController().setZoom(GlobalValues.EMERGENCY_MAP_ZOOM_LVL);
于 2012-06-11T11:10:43.753 に答える