当用户点击标记时,会出现信息窗口以及地图工具栏:
我想从代码中“取消选择”此标记,从而隐藏这些小部件。所需行为类似于用户点击地图上其他位置时的行为。
我知道marker.hideInfoWindow()
方法,但它只隐藏视图,将标记保持在“选定”状态。
答案 0 :(得分:0)
如果你想删除所选的标记,例如你想要显示你当前的位置,你应该这样做:
mMap.setOnMyLocationButtonClickListener(new GoogleMap.OnMyLocationButtonClickListener() {
@Override
public boolean onMyLocationButtonClick() {
mMap.clear();
getLocationData();
return false;
}
});
方法clear()将从Map
中删除标记答案 1 :(得分:0)
如果您希望从地图视图中删除地图工具栏和myLocation按钮(在此示例中)点击标记,您可以声明一个类boolean
变量,您可以使用该变量切换这些变量的可见性对象。
boolean toggleMapToolBarVisibility = false;
然后,您可以使用boolean
变量来显示MapToolBar
和/或MyLocation
按钮。我将此功能添加到OnMarkerClickListener
事件中,但可以在任何地方添加此行为,例如。 onBackPressed()
(但如果您确实将其添加到onMapReady
方法以外的某处,请确保GoogleMap
对象不是null
!)。
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
try{
toggleMapToolBarVisibility = !toggleMapToolBarVisibility;
mMap.getUiSettings().setMapToolbarEnabled(toggleMapToolBarVisibility);
mMap.setMyLocationEnabled(toggleMapToolBarVisibility);
}
catch (SecurityException sec){
Log.e(TAG, sec.getMessage());
}
return false; // you can return true to change the behavior
}
});
}
如果
onMarkerClick
侦听器已使用该事件,则返回true (即不应出现默认行为);否则为假(即 应该发生默认行为)。默认行为是 相机移动到标记和信息窗口出现。