片段错误中的多个 MapView,所有地图都可见

Multiple MapViews in fragments bug, all maps visible

我正在使用带有多个 frgmetns 的单个 activity,其中每个 frgmetns 在其片段中包含一个 MapView。

这是一个已报告的错误,我在 4.0.4 android(可能也在 4.0)上发生,但在更高版本上可以正常工作。

https://code.google.com/p/gmaps-api-issues/issues/detail?id=5027

Multiple maps v2 in TabActivity

添加新片段时,两个地图都会显示。如果添加了第三个片段,则会显示所有树图。我已经尝试应用上面讨论的 hideStupidMaps 修复,但它没有提供任何结果(我在 onResume/onPause 中添加了对 hide/show 地图的调用)。

在调用 FragmentManager 及其事务之前,我还添加了隐藏先前地图的调用,但没有结果。

我已经尝试将 MapView 可见性设置为 INVISIBLE,但还是没有结果,之前的地图仍然显示,好像没有刷新?

有没有办法将zIndex设置为MapView?我知道您可以在通过 GoogleOptions 使用 MapFragment 时设置 z 索引,但我找不到使用 MapView 执行此操作的选项?

   GoogleMapOptions options = new GoogleMapOptions();
   options.zOrderOnTop(true);
   fragmentMap = SupportMapFragment.newInstance(options);

我已经设法让它工作了。问题是我实际上是在片段事务之后调用 hideStupidMaps,并且在 4.0.4 android 上它在 4.1 上工作时没有任何效果。我在 Fragment 事务之前移动了调用并且它起作用了。唯一的缺点是,在片段动画开始之前,用户可以暂时看到地图消失。

我还添加了一个 OnBackStackChangedListener,我会在返回 button/action 栏时显示之前隐藏的地图。

希望它对某人有所帮助,并提供一条建议,如果可以的话,请避免在片段中使用多个地图...