1

我的应用程序包含选项卡布局(TabHost,TabSpec)。
我在我的应用程序中使用了两个地图视图。因此,如果我在一个 map_activity 中启用卫星视图,然后转到另一个 map_activity,则其他地图也会显示在卫星视图中,如果我将一个 map_activity 拖向美国,则其他地图视图也会自动拖向美国,无论它之前指向哪里。

我一般来说,如果我们使用 android:process=":map1" 和 android:process=":map2" 在不同的进程中运行两个活动,那么我们可以解决上述问题。我在这里提到......

但是我们如何在标签栏(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 回答