我有一个活动,其中包含一个带有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/