1

如果标记所在的地图或标记本身被点击,InfoWindow 的默认行为是隐藏。

有什么方法可以使 InfoWindow 永久化,这样你就不能隐藏它了?

我已禁用地图中的所有手势,但点击时 InfoWindow 仍会消失。

4

3 回答 3

3

visceralG 的解决方案是我首先要做的,但也有(未经测试的)替代方案:

  • 保留对显示信息窗口的标记的引用(来自getInfoContents
  • onMapClick呼吁markerShowingInfoWindow.showInfoWindow()强制它回来
  • 如果上述方法不起作用,请将其markerShowingInfoWindow.showInfoWindow()放入Runnable.run()并使用Handleror发布View
于 2013-05-12T11:12:01.847 回答
1

不是我知道的。最好的办法是为包含绘制的“信息窗口”的地图标记创建自己的自定义图标。然后,它需要在图标位图的 infoWindow 部分进行一些自定义绘图,以产生与普通 infoWindow 相同的效果,但实现起来并不太糟糕。不像您正在寻找的解决方案那么容易,但它会带您到达您想去的地方。希望有帮助!

于 2013-05-10T17:39:28.537 回答
0

假设您已经知道如何设置信息窗口,这些行将使您的信息窗口,对于任何一个标记,都是永久的:

    final Marker myMarker = mGoogleMap.addMarker(mDriverMarker);

    myMarker.showInfoWindow();

    mGoogleMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
        @Override
        public void onMapClick(LatLng latLng) {
            myMarker.showInfoWindow();
        }
    });

    mGoogleMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
        @Override
        public boolean onMarkerClick(Marker marker) {
            myMarker.showInfoWindow();
            return true;
        }
    });
于 2017-07-20T07:09:24.387 回答