我有自定义Infowindow的地图,我想确保每次用户点击标记时信息窗口都会完全可见,我该怎么做?
我已经有一些代码可以防止点击标记居中,但我不知道如何做我需要的:
private void preventMarkerCenter(){
map.setOnMarkerClickListener(new OnMarkerClickListener() {
public boolean onMarkerClick(Marker marker) {
// Check if there is an open info window
if (lastOpenned != null) {
// Close the info window
lastOpenned.hideInfoWindow();
// Is the marker the same marker that was already open
if (lastOpenned.equals(marker)) {
// Nullify the lastOpenned object
lastOpenned = null;
// Return so that the info window isn't openned again
return true;
}
}
// Open the info window for the marker
marker.showInfoWindow();
// Re-assign the last openned such that we can close it later
lastOpenned = marker;
// Event was handled by our code do not launch default behaviour.
return true;
}
});
}
答案 0 :(得分:0)
通过返回true
阻止的“默认行为”是显示信息窗口,然后将地图置于标记中心。
我想如果您不致电marker.showInfoWindow()
,并返回false
,您就会得到您想要的。
如果您想要的是将地图平移到足以显示信息窗口,那么您必须自己进行这些计算并使用CameraUpdateFactory
。CameraUpdateFactory.scrollBy()
或类似的东西平移地图。