我将谷歌地图
Android API v2集成到我的应用程序中,并且在GoogleMap中对标记有奇怪的行为.
InfoWindow隐藏后不调用OnMarkerClickListener#onMarkerClick(标记标记).它不依赖于我如何显示InfoWindow(既不是marker.showInfoWindow()也不是
@Override
public boolean onMarkerClick(final Marker marker) {
.....
return true;}
不起作用.
通过触摸或更改变焦来改变相机位置后,它会工作一次.
我在GoogleMapDemo中看到的行为相同.
这是我的代码
private GoogleMap mMap;
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.map_address_activity);
setUpMapIfNeeded(); // from oficial sample
mMap.setOnMapClickListener(new OnMapClickListener() {
@Override
public void onMapClick(LatLng point) {
mMap.clear();
mMap.addMarker(new MarkerOptions().position(point).title("Marker"));
final CameraPosition cameraPosition = new CameraPosition.Builder().target(point).zoom(mMap.getCameraPosition().zoom).build();
mMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
});
mMap.setOnMarkerClickListener(new OnMarkerClickListener() {
@Override
public boolean onMarkerClick(final Marker marker) {
Log.e("TESTING", "on Marker click: " + marker.getTitle());
if (!marker.isInfoWindowShown())
marker.showInfoWindow();
else
marker.hideInfoWindow();
return true;
}
});
}
隐藏InfoWindow后,你能帮我处理标记上的点击事件吗?
最佳答案 这就是应该发生的事情! onMarkerClick仅在单击标记时被调用,但在infoWindow隐藏时不会被调用.
如果你想监听InfoWindows隐藏事件,你必须在hideMoveer中的onMarkerClick方法中实现你自己的逻辑,或者覆盖onMapClick方法(因为可以隐藏信息点击地图上的任何地方).在最后一种情况下,您必须使用激活的infoWindow保留对最后一个标记的引用,并检查该窗口状态以实现您的逻辑.