mLastShownInfoWindowMarker

mLastShownInfoWindowMarker

我有一个活动,其中包含一个带有google map视图的片段。app向mappview添加了几十个标记,使用markermanager和clusterrenderer形成集群。
问题是当我打开marker的信息窗口并按下hardware back按钮时,它会关闭应用程序。相反,我希望关闭infowindow。
有什么直截了当的方法可以做到这一点吗?

最佳答案

我设法解决了这个问题。
我修改了MarkerManager,以便在InfoWindow即将打开时通过EventBus发送通知:

@Override
public View getInfoContents(Marker marker) {
    View content = fillContent();
    EventBus.getDefault().post(new MapInfoWindowShownEvent(marker));
    return content;
}

我在活动中添加了事件处理:
private Marker mLastShownInfoWindowMarker = null;

@Override
public void onBackPressed() {
    if(mLastShownInfoWindowMarker != null && mLastShownInfoWindowMarker.isInfoWindowShown()) {
        mLastShownInfoWindowMarker.hideInfoWindow();
    } else {
        super.onBackPressed();
    }
}

public void onEvent(MapInfoWindowShownEvent event) {
    mLastShownInfoWindowMarker = event.getMarker();
}

关于android - Android和Google map -使用后退按钮关闭信息窗口,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25429278/

10-08 23:59